Pocket

え、明日から10月・・・

Adachinですっ。

前回のロードバランサー構築ブログはNATの設定まででしたが、

[CentOS7][ipvsadm][DSR]LVSをKVMで構築してみた part②

今回はLVSを2台構成にして、一台落ちても問題ないように冗長化の設定をします。

つまり、Keepalivedを使って駆使するわけです。

レッツアンドゴー!


■構成図

VIPの外部は172.19.10.111に。内部は192.168.99.111にしました。
LVS02はLVS01と設定は同じです。

※注意点
全てVIPを使って通信したいため、現在WEB01,02のデフォルトゲートウェイが172.19.10.63を向いてるため、
keepalivedの設定が完了したらVIPの192.168.99.111に変更しましょう。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88_2016-09-30_%e5%8d%88%e5%be%8c7_48_42


■Keepalivedの設定(LVS01,02)

・インストール

・keepalived構成

今回はDSRなので、いろいろと設定を分けています。
sshも現在ipvsadmで設定してるので、後でfirewalldの設定に変更しましょう。
ひとまずconfの設定から。

・keepalived.conf(includeします)

・vrrp_master.sh(DSRのためのスクリプト)

 

・vrrp_backup.sh(DSRのためのスクリプト)

・vrrp_state.sh(DSRのためのスクリプト)

・ip_list.txt(DSRのためのスクリプト/ファイル)

172.19.10.111

・vrrp.conf(VIPの設定)


vrrp_sync_group VG {
group {
VI
VE
}
notify_master /etc/keepalived/vrrp_master.sh
notify_backup /etc/keepalived/vrrp_backup.sh
notify_fault /etc/keepalived/vrrp_backup.sh
notify /etc/keepalived/vrrp_state.sh
}
vrrp_instance VI {
state BACKUP
interface eth0
lvs_sync_daemon_interface eth1
garp_master_delay 5
virtual_router_id 101 #基本MASTERとBACKUPも同じにしてかぶらないよう気をつける
priority 100
nopreempt
advert_int 1
smtp_alert
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
172.19.10.111/24 dev eth0
}
}
vrrp_instance VE {
state BACKUP
interface eth1
garp_master_delay 5
virtual_router_id 102
priority 100
nopreempt
advert_int 1
smtp_alert
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
192.168.99.111/24 dev eth1
}
}

view raw

vrrp.conf

hosted with ❤ by GitHub

・test-http.conf(HTTPの設定)


virtual_server_group DOCKER_HTTP {
172.19.10.63 80
172.19.10.111 80
}
virtual_server group DOCKER_HTTP {
delay_loop 3
lvs_sched wrr
lvs_method NAT →Masp
protocol TCP
real_server 192.168.99.2 80 {
weight 5
inhibit_on_failure
HTTP_GET {
url {
path /
status_code 200
}
connect_port 80
connect_timeout 3
}
}
real_server 192.168.99.3 80 {
weight 5
inhibit_on_failure
HTTP_GET {
url {
path /
status_code 200
}
connect_port 80
connect_timeout 3
}
}
}

view raw

keepalived.conf

hosted with ❤ by GitHub

・test-ssh.conf(SSHの設定)

10024のポートも同様に同じファイルを作ります。(firewalldの設定するので必要なし)

https://gist.github.com/RVIRUS0817/3cfdb60457b89564689c1bde5ba1d4b1

・keepalived起動

・keepalived status

VIPが振られてるのが分かります。


■DSRの設定

・sshの設定をfirewalldに振り分けする

・firewalld でVIP(172.19.10.111)に対してマスクセット

・VIPの設定をコメントアウト

・ルーティングの優先順位設定追加

・firewalld にVIPからのリクエストを リダイレクトするルール追加

・keepalivedを止める(LVS01)


■まとめ

これで冗長化はバッチグーですね。
haproxyと違ってLVSはパフォーマンスがいいですが、
設定がかなり難しいといったところ。
次回はベンチマークでお会いしましょう。

Pocket


adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください