12

最近、HAProxy を使用してアプリケーションの負荷分散を試みたところ、正常に実行できました。その後、フローティング IP と呼ばれる概念に出会いました。これは、keepalived と共に使用して、ロード バランサーの可用性を高めることができます。ただし、フローティング IP の作成方法を理解できませんでした。フローティング IP を作成し、それを使用して HAProxy を構成するにはどうすればよいですか? ありがとう。

4

2 に答える 2

19

仮定:

  • これはUbuntu 14.04で動作します
  • haproxy プライマリ IP: 198.51.100.10
  • haproxy セカンダリ IP: 198.51.100.20
  • 共有 IP: 198.51.100.50
  • DNS ルールは共有 IP (198.51.100.50) を指す必要があります。

手順:

  1. keepalived のファイアウォール ルールを追加します # 224.0.0.18 は keepalived マルチキャスト アドレスです
    1. sudo ufw allow in from 198.51.100.20 to 224.0.0.18 # 198.51.100.10 で
    2. sudo ufw allow in from 198.51.100.10 to 224.0.0.18 # 198.51.100.20 で
  2. 共有 IP アドレスへのアクセスを許可する
    1. 編集/etc/sysctl.conf
    2. 設定net.ipv4.ip_nonlocal_bind=1
    3. sudo sysctl -p # 設定変更をリロード
  3. キープアライブをインストールする
    1. sudo apt-get install keepalived
  4. 両方のサーバーで keepalived を構成する
    1. 編集/作成/etc/keepalived/keepalived.conf
    2. 以下のサンプル ファイルを参照してください # プライオリティはプライマリ サーバーとセカンダリ サーバーで異なる必要があります。
  5. キープアライブを再起動します
    1. sudo サービス キープアライブの再起動
  6. 共有 IP アドレスでリッスンする
    1. 編集/etc/haproxy/haproxy.cfg
    2. bind 198.51.100.50:80
  7. haproxy を再起動します (両方の haproxy サーバーで)
    1. sudo service haproxy restart
  8. 適切なフェイルオーバーを確認する
    1. primary: sudo ip addr show | grep eth0# 共有 IP をリストする必要があります
    2. secondary: sudo ip addr show | grep eth0# 共有 IP をリストすべきではありません
    3. 主要な:sudo service haproxy stop
    4. primary: sudo ip addr show | grep eth0# 共有 IP をリストすべきではありません
    5. secondary: sudo ip addr show | grep eth0# 共有 IP をリストする必要があります
    6. 主要な:sudo service haproxy start
    7. primary: sudo ip addr show | grep eth0# 共有 IP をリストする必要があります
    8. secondary: sudo ip addr show | grep eth0# 共有 IP をリストすべきではありません

/etc/keepalived/keepalived.conf

     vrrp_script chk_haproxy {      # Requires keepalived-1.1.13
       script "killall -0 haproxy"  # cheaper than pidof
       interval 2 # check every 2 seconds
       weight 2 # add 2 points of priority if OK
     }
     vrrp_instance VI_1 {
       interface eth0
       state MASTER
       virtual_router_id 51
       priority 101 # 101 on primary, 100 on secondary
       virtual_ipaddress {
         198.51.100.50
       }
       track_script {
         chk_haproxy
       }
     }
于 2016-06-28T21:09:35.317 に答える