Keepalived
为什么要使用双主热备
之前配置好的双机主备,有两台计算机节点,其中一台发生故障,虚拟IP就会和另外一台节点进行绑定,这样用户就可以不间断的访问服务器的内容。但是使用这样的高可用的架构存在一个问题,两个云服务器节点,如果服务器不会发生宕机,所有的流量,所有的请求都会到master节点,备用机不会发生作用,也就是存在一个资源浪费的情况,但是要花费和主节点一样的成本去租用备用服务器,为了避免这样的资源浪费,为了让两个节点都能为用户提供服务,可以实现Keepalived双主热备。
当前架构是:开始虚拟IP151和主节点绑定,如果主节点挂掉,151在和备节点进行绑定
双主热备:在新增一个虚拟IP,实际上就是两组路由组,新的虚拟IP为152开始与之前备节点进行绑定,之前的主备关系,变成互为主备的关系。
对于有两个虚拟IP,用户请求可以通过DNS轮询分发到不同的IP,其实就是不同的虚拟IP,这样就可以更加高效的利用nginx节点,从而就不会造成资源的浪费了。
配置Keepalived双主热备
双主热备本质上就是由两组不用的主备关系所共同的一个组成。
- 配置之前的主节点的Keepalived
cd /etc/keepalived
vi keepalived.conf
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 80
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.139.152
}
}
- 配置之前的备节点的Keepalived
cd /etc/keepalived
vi keepalived.conf
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.16.139.152
}
}
- 分别重启两个 Keepalived
systemctl stop keepalived.service - 测试Keepalived双主热备
4.1 本地是没有DNS这种说法,在实际项目对应的是同一个域名,在云服务器上面可以同一个域名对应两个IP,这里的两个域名是模拟经过DNS请求到虚拟IP。
4.2分别访问虚拟IP 151 152的域名
4.3 模拟133节点的Keepalived挂掉
systemctl stop keepalived.service
查看137节点的ip地址发现
成功配置双主热备。