最近、HAProxy を使用してアプリケーションの負荷分散を試みたところ、正常に実行できました。その後、フローティング IP と呼ばれる概念に出会いました。これは、keepalived と共に使用して、ロード バランサーの可用性を高めることができます。ただし、フローティング IP の作成方法を理解できませんでした。フローティング IP を作成し、それを使用して HAProxy を構成するにはどうすればよいですか? ありがとう。
9887 次
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) を指す必要があります。
手順:
- keepalived のファイアウォール ルールを追加します # 224.0.0.18 は keepalived マルチキャスト アドレスです
sudo ufw allow in from 198.51.100.20 to 224.0.0.18
# 198.51.100.10 でsudo ufw allow in from 198.51.100.10 to 224.0.0.18
# 198.51.100.20 で
- 共有 IP アドレスへのアクセスを許可する
- 編集
/etc/sysctl.conf
- 設定
net.ipv4.ip_nonlocal_bind=1
sudo sysctl -p
# 設定変更をリロード
- 編集
- キープアライブをインストールする
sudo apt-get install keepalived
- 両方のサーバーで keepalived を構成する
- 編集/作成
/etc/keepalived/keepalived.conf
- 以下のサンプル ファイルを参照してください # プライオリティはプライマリ サーバーとセカンダリ サーバーで異なる必要があります。
- 編集/作成
- キープアライブを再起動します
- sudo サービス キープアライブの再起動
- 共有 IP アドレスでリッスンする
- 編集
/etc/haproxy/haproxy.cfg
bind 198.51.100.50:80
- 編集
- haproxy を再起動します (両方の haproxy サーバーで)
sudo service haproxy restart
- 適切なフェイルオーバーを確認する
- primary:
sudo ip addr show | grep eth0
# 共有 IP をリストする必要があります - secondary:
sudo ip addr show | grep eth0
# 共有 IP をリストすべきではありません - 主要な:
sudo service haproxy stop
- primary:
sudo ip addr show | grep eth0
# 共有 IP をリストすべきではありません - secondary:
sudo ip addr show | grep eth0
# 共有 IP をリストする必要があります - 主要な:
sudo service haproxy start
- primary:
sudo ip addr show | grep eth0
# 共有 IP をリストする必要があります - secondary:
sudo ip addr show | grep eth0
# 共有 IP をリストすべきではありません
- primary:
/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 に答える