keepalived 多VIP案例实施
实验环境:
首先关闭防火墙
192.168.200.111 主调度器
192.168.200.112 备调度器
192.168.200.113 Apache服务器
192.168.200.114 Apache服务器
一利用keepalived实验主备故障切换
111主调度器的配置
[root@localhost ~]# yum -y install ipvsadm keepalived
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
vim keepalived.conf
[root@localhost keepalived]# vim keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_MASTER ##备用的可以改成BACKUP
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 { ##主备名字一样
state MASTER
interface ens32 #生命线,与本机网卡名字保持一致,备用的改成BACKUP
virtual_router_id 51 ##主备名字一致
priority 100 ##备用优先级低于主调度器
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #VIP地址
192.168.200.254
}
}
virtual_server 192.168.200.254 80 { #VIP地址及端口
delay_loop 6
lb_algo rr ##模式
lb_kind DR
protocol TCP
real_server 192.168.200.113 80 { ##节点IP地址,以及端口
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.200.114 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
systemctl start keepalived
ip a 查看是否有192.168.200.254这个VIP
ipvsadm -Ln 查看
scp keepalived.conf root@192.168.200.112:/etc/keepalived/
112修改完配置文件开启服务即可
113和114的配置:
yum -y install httpd
ifconfig lo:0 192.168.200.254 netmask 255.255.255.255
route add -host 192.168.200.254 dev lo:0 ##添加路由
ip a #查看
echo "3333" > /var/www/html/index.html
systemctl start httpd
vim /etc/sysctl.conf
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
sysctl -p
测试
关闭111的网卡 或者服务
在112中 ip a 查看有没有192.168.200.254这个ip地址
然后打开网页测试 出来及成功
这个测试经常出现一些问题 ,112的防火墙经常关不透,所以要经常iptables -F 关闭防火墙
二 Keepalived有两种工作模式:抢占和非抢占, 上面是抢占,下面演示非抢占模式
首先关闭112的keepalived的服务
然后在111中修改配置文件
vim /etc/keepalived/keepalived.conf
state BACKUP ##两个都是BACKUP
nopreempt ##在下面添加这一个
重启服务
测试即可
三。把两个调度器同时利用,缓解主调度器的压力,分摊压力
原理:111可以是VIP1的主,也可以是VIP2的备,112可以是VIP1的备,也可以是VIP2的主
然后利用DNS解析
首先把111的恢复到抢占模式
113和114的首先配置
ifconfig lo:1 192.168.200.253 netmask 255.
255.255.255
route add -host 192.168.200.253 dev lo:1
111和112的配置
vim /etc/keepalived/keepalived.conf
在vrrp_instance VI_1 下面添加这以下 112的state 是MASTER,priority的值是100,其他相同
在virtual_server 192.168.200.254下面复制修改以下内容
systemctl restart keepalived
两组才是正确的
ip a
111的是254,
112的是253
出现即正确(不要忘记经常关闭防火墙,iptables -F)
在网页输入192.168.200.253 和192.168.200.254
要让两台调度器同时分担压力需要DNS解析
111的配置:
yum -y install bind
vim /etc/named.conf
vim /var/named/crushlinux.zheng
chgrp named /var/named/crushlinux.zheng
systemctl restart named
vim /etc/resolv.conf
nameserver 192.168.200.111
yum -y install bind-utils (nslooup需要这个包)
nslookup www.crushlinux.com
来回测试nslookup254和253来回切换即可