Adachinですっ。
ロードバランサーと言えば「Keepalived」が有名ですが、
よく障害がてらLBから外したり、戻したりする作業あるので、メモしときます。
そもそもKeepalivedって何も説明していきます。(簡単に)
■Keepalivedとは
LVS と組み合わせて使う、ロードバランサの冗長性確保用デーモン。
ロードバランサがパケットを振り分ける相手、バックエンドのサーバ群が落ちたときにどうするか、
ロードバランサそのものが故障したらどうするかという2点について考えないといけないが、
keepalived は両方とも解決してしまう。
keepalived は LVS の API を用いて LVS の設定を行うようになっており、
keepalived.conf を編集して keepavlied を立ち上げると、LVS のエントリが自動で設定される。
keepalived が LVS のフロントエンドとしての役割も果たします。
以下LB + keepalivedの構成より
参考画像:http://rksz.hateblo.jp/entry/2013/03/19_keepalived_lvs_load_balancer_2013
で、ロードバランサーから切り離したり、戻したりするコマンドが
「ipvsadm」を駆使してコントロールするわけです。
■切り離し
# ipvsadm -d -t <GIP>:<PORT> -r <IP>
例)
# ipvsadm -d -t 118.xxx.xxx.xxx:80 -r 192.xxx.xxx.xxx
■戻す
# ipvsadm -a -t <GIP>:<PORT> -r <IP> -g -w <ウェイト数>
例)
# ipvsadm -a -t 118.xxx.xxx.xxx:80 -r 192.xxx.xxx.xxx -g -w 10
■確認
# ipvsadm -Ln
切り離ししているか、ちゃんと戻っているか対象のIPを確認
■他のやり方
LBのMasterからkeepalived.conf内にある
各LBのファイルより、対象のIPをコメントアウトをする。
以下のコマンドで読み込みをする
# svc -t /service/keepalived-check
■まとめ
LBから外すのは毎回めっちゃ緊張しまくるので、
いつも自分で声がけしていますw(ひとりごと)
ここらへんミスすると全サービスに影響出てしまうので、
きをつけましょう!