1:准备四台主机
(lvs)两台,(nginx)两台
ip地址:lvs01:192.168.0.2
lvs02:192.168.0.3
nginx01:192.168.0.4
nginx02:192.168.0.5
vip:192.168.0.10
2:四台主机分别执行更新源操作
sudo apt-get update
3:lvs01,lvs02分别执行以下操作
sudo apt-get install -y ipvsadm keepalived
4:nginx01,nginx02分别执行以下操作
sudo apt-get install -y nginx
5:nginx01,nginx02分贝设置配置脚本:
sudo vim /usr/local/sbin/lvs_dr_rs.sh
vip=192.168.0.10
ifconfig lo:0 $vip broadcast $vip netmask 255.255.255.255 up
route add -host $vip 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
6:分别在nginx01和nginx02上面执行 sudo bash /usr/local/sbin/lvs_dr_rs.sh
7:lvs01节点配置
sudo vim /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.10
}
}
virtual_server 192.168.0.10 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 0
protocol TCP
real_server 192.168.0.4 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.0.5 80 {
weight 1
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
8:lvs02节点配置
从主节点拷贝keepalived.conf然后修改
state MASTER 改为 BACKUP
priority 100 改为 90
9:lvs01和lvs02开启转发功能
# echo 1 > /proc/sys/net/ipv4/ip_forward
10:启动lvs01和lvs02上面keepalive
先启动lvs01 后启动lvs02
sudo service keepalived start
11:验证
1):手动关闭192.168.0.4节点的nginx,service nginx stop 在客户端上去测试访问 http://192.168.0.10 结果正常,不会出现访问18节点,一直访问的是28节点的内容
2): 手动重新开启 192.168.0.4 节点的nginx, service nginx start 在客户端上去测试访问 http://192.168.0.10 结果正常,按照 rr 调度算法访问4节点和5节点。
3):测试 keepalived 的HA特性,首先在master上执行命令 ip addr ,可以看到38的vip在master节点上的;这时如果在master上执行 service keepalived stop 命令,这时vip已经不再master上,在slave节点上执行 ip addr 命令可以看到 vip 已经正确漂到slave节点,这时客户端去访问 http://192.168.0.10 访问依然正常,验证了 keepalived的HA特性。