実際の戦闘環境(CentOS7)
VIP 10.211.55.180(仮想IP) LVS1 10.211.55.151(メインLVS) LVS2 10.211.55.152(スタンバイLVS) RS1 10.211.55.171(実サーバー1) RS2 10.211.55.172(実サーバー2)
環境内のすべてのノードを初期化します
iptalbes -F#ファイアウォールを空にする
systemctl stop Firewalld#ファイアウォールを閉じる
systemctl disable Firewalld#起動時にファイアウォールが起動しないようにします
setenforce 0#selinuxを一時的に閉じます
sed -i's / ^ SELINUX =。* $ / SELINUX = disabled / g '/ etc / selinux / config#関闭selinux
yum -y install epel-release #Install epel source
LVS1,2操作
1. keepalivedipvsadmをインストールします
yum -y install keepalived ipvsadm
[root @ localhost〜] #lsmod | grep ip_vs#ipvsモジュールを確認してください
ip_vs_rr 12600 1
ip_vs 145497 3 ip_vs_rr
nf_conntrack 139264 9 ip_vs、nf_nat、nf_nat_ipv4、nf_nat_ipv6、xt_conntrack、nf_nat_masquerade_ipv4、nf_conntrack_netlink、nf_conntrack_ipv4、nf_conntrack_ipv6
libcrc32c 12644 4 xfs、ip_vs、nf_nat、nf_conntrack
2. keepalived(LVS1、2)を構成します
2.1keepalivedの構成ファイルを変更します
[root @ localhost〜] #cd / etc / keepalived /
[root @ localhost keepalived] #cat keepalived.conf
!keepalivedのはのための設定ファイル global_defsは{ {notification_email [email protected] } notification_email_from [email protected] SMTP_SERVER 127.0.0.1 smtp_connect_timeout 30 LVS_DEVELのROUTER_ID vrrp_skip_check_adv_addr ## vrrp_strict vrrp_garp_interval 0 vrrp_gna_interval 0 } vrrp_instance VI_1 { ここ州LVS1は、MASTER番号マスターであります次に、LVS2はBACKUP インターフェイスに変更されます。eth0#CENTOS7 ens33 virtual_router_id 51 #メインとスタンバイの 優先度が一貫している場合100#LVS1が100の場合、LVS2は100未満(90など)です。 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 10.211.55.180 #VIP } } 10.211.55.180 80 {#VIP VIRTUAL_SERVER delay_loop 6 lb_algo RR lb_kind DR 50 persistence_timeout プロトコルTCP real_server 10.211.55.171 80 {#后端RS1检测 重量1 TCP_CHECK { CONNECT_TIMEOUT 3 nb_get_retry 3 delay_before_retry 3 connect_port 80 } } real_server 10.211.55.172 80 {#后端RS2检 重み 1TCP_CHECK { connect_timeout 3 1nb_get_retry 3 delay_before_retry 3 connect_port 80 } } }
2.2起動の設定(LVS1、2)
systemctl enable keepalived
systemctl startkeepalived
3. LVSを構成し、次のスクリプト(LVS1、2)を実行して、起動するようにスクリプトを設定します
vi /opt/lvs_dr.sh
#!/ bin / sh #説明:DirectorサーバーのLVSを開始 VIP = 10.211.55.180 RIP1 = 10.211.55.171 RIP2 = 10.211.55.172 case "$ 1" in start) echo "start LVS of Director Server" #仮想IPアドレスを設定およびsysctlパラメーター #/ sbin / ifconfig eth0:0 $ VIP Broadcast $ VIP netmask 255.255.255.255 up #route add -host $ VIP dev eth0:0 echo "1"> / proc / sys / net / ipv4 / ip_forward #Clear IPVS table / sbin / ipvsadm -C #set LVS / sbin / ipvsadm -A -t $ VIP:80 -s rr#-p 600#共有会话持久化则♪的-p600取消注释 / sbin / ipvsadm -a -t $ VIP:80 -r $ RIP1:80 -g / sbin / ipvsadm -a -t $ VIP:80 -r $ RIP2:80 -g #Run LVS / sbin / ipvsadm ;; stop) echo "close LVS Directorserver" echo "0"> / proc / sys / net / ipv4 / ip_forward / sbin / ipvsadm -C #/ sbin / ifconfig eth0:0 down ;; *) echo "Usage:$ 0 {start | stop}" exit 1 esac
chmod + x /opt/lvs_dr.sh#実行権限を追加
echo "/opt/lvs_dr.sh start" >> / etc / profile#自動開始
4. RS操作を構成し、次の操作を実行します(RS1、2)
nginxをインストールします
yum -y install nginx#RS1、2がインストールされています
echo 10.211.55.171> /usr/share/nginx/html/index.html#RS1操作中
echo 10.211.55.172> /usr/share/nginx/html/index.html#RS2操作中
systemctl start nginx#RS1、2はすべて動作しています
RSスクリプトを設定し、自動的に開始するようにブートを設定します
vi /opt/lvs_rs.sh
#!/ bin / bash VIP = 10.211.55.180 / sbin / ifconfig lo:0 $ VIPブロードキャスト$ VIPネットマスク255.255.255.255up / sbin / route add -host $ VIP dev lo:0 echo“ 1”> / proc / sys / net / ipv4 / conf / lo / arp_ignore echo“ 2”> / proc / sys / net / ipv4 / conf / lo / arp_announce echo“ 1”> / proc / sys / net / ipv4 / conf / all / arp_ignore echo“ 2″> / proc / sys / net / ipv4 / conf / all / arp_announce sysctl -p
この操作では、ループバックデバイスの仮想IPアドレスをバインドし、そのサブネットマスクを255.255.255.255に設定して、Directorサーバーの仮想IPとの相互通信を維持し、ローカルARP要求を禁止します。
上記のVIPアドレスである仮想IPは、Director ServerとすべてのRealサーバーで共有されているため、VIPアドレスのARP要求がある場合、Director ServerがすべてのRealサーバーに応答すると問題が発生するため、禁止する必要があります。実サーバーはARP要求に応答します。lvsrsスクリプトの役割は、RealServerがarp要求に応答しないようにすることです。
chmod + /opt/lvs_rs.sh#実行権限を追加
echo "/opt/lvs_rs.sh"#Startupが自動的に
5.テスト
クライアントを見つけて、次のコマンドを実行します
-> $ for i in `seq 20`; do curl 10.211.55.180; done
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172
10.211.55.171
10.211.55.172