大自然的网站设计,美的网站建设,美食网站怎么做,php做网站怎么布局目录
一、高可用集群
1.1 集群的类型
1.2 实现高可用
1.3 VRRP#xff1a;Virtual Router Redundancy Protocol
1.3.1 VRRP相关术语
1.5.2 VRRP 相关技术
二、部署KEEPALIVED
2.1 keepalived 简介
2.2 Keepalived 架构
2.3 Keepalived 环境准备
2.3.1 实验环境
2…目录
一、高可用集群
1.1 集群的类型
1.2 实现高可用
1.3 VRRPVirtual Router Redundancy Protocol
1.3.1 VRRP相关术语
1.5.2 VRRP 相关技术
二、部署KEEPALIVED
2.1 keepalived 简介
2.2 Keepalived 架构
2.3 Keepalived 环境准备
2.3.1 实验环境
2.4 Keepalived 相关文件
2.5 安装软件
2.6 KeepAlived 配置说明
2.6.1 配置虚拟路由
2.6.2 示例 keepalived配置文件中配置虚拟路由
2.6.2.1 抓包命令查看组播信息
2.6.3 实现独立子配置文件
三.Keepalived 应用示例
3.1 实现master/slave的 Keepalived 单主架构
3.1.1 配置MASTER
3.1.2 配置BACKUP
3.1.3 抓包查看
3.2 抢占模式和非抢占模式
3.2.1 非抢占模式
3.2.2 抢占延迟模式
3.3vip单播模式 3.3.1 抓包命令查看 ka2上看不到因为没有vip
3.4 keepalived实现邮件通知
3.5 实现keepalived的双主架构 master/master
3.6 实现IPVS的高可用性DR模式
3.6.1 应用层监测
3.6.2 TCP监测
3.6.3 实现单主的 LVS-DR 模式
3.7 vrrp Script 配置 脚本控制vip
3.7.1 利用脚本实现主从角色切换
3.8 keepalived-haproxy实现高可用
3.8.1 还原状态
3.8.2 实现haproxy高可用
3.8.3 测试 一、高可用集群
1.1 集群的类型
LBLoad Balance 负载均衡 LVS/HAProxy/nginxhttp/upstream, stream/upstream HAHigh Availability 高可用集群 数据库、Redis SPoF: Single Point of Failure解决单点故障 HPCHigh Performance Computing 高性能集群
1.2 实现高可用 提升系统高用性的解决方案降低 MTTR- Mean Time To Repair( 平均故障时间 ) 解决方案建立冗余机制 active/passive 主/备 active/active 双主 active -- HEARTBEAT -- passive active -- HEARTBEAT -- active
1.3 VRRPVirtual Router Redundancy Protocol 虚拟路由冗余协议 , 解决静态网关单点风险 物理层:路由器、三层交换机 软件层:keepalived 1.3.1 VRRP相关术语 虚拟路由器Virtual Router 虚拟路由器标识VRID(0-255)唯一标识虚拟路由器 VIPVirtual IP VMACVirutal MAC (00-00-5e-00-01-VRID) 物理路由器 master主设备 backup备用设备 priority优先级 1.5.2 VRRP 相关技术 通告心跳优先级等周期性 工作方式抢占式非抢占式 安全认证 无认证 简单字符认证预共享密钥 MD5 工作模式 主/备单虚拟路由器 主/主主/备虚拟路由器1备/主虚拟路由器2 二、部署KEEPALIVED 2.1 keepalived 简介 vrrp 协议的软件实现原生设计目的为了高可用 ipvs 服务 官网 http://keepalived.org/ 功能 基于vrrp协议完成地址流动 为vip地址所在的节点生成ipvs规则(在配置文件中预先定义) 为ipvs集群的各RS做健康状态检测 基于脚本调用接口完成脚本中定义的功能进而影响集群事务以此支持nginx、haproxy等服务 2.2 Keepalived 架构 官方文档 https://keepalived.org/doc/ http://keepalived.org/documentation.html 用户空间核心组件 vrrp stack VIP 消息通告 checkers监测 real server system call实现 vrrp 协议状态转换时调用脚本的功能 SMTP邮件组件 IPVS wrapper生成 IPVS 规则 Netlink Reflector网络接口 WatchDog监控进程 控制组件提供keepalived.conf 的解析器完成Keepalived配置 IO复用器针对网络目的而优化的自己的线程抽象 内存管理组件为某些通用的内存管理功能例如分配重新分配发布等提供访问权限 2.3 Keepalived 环境准备 2.3.1 实验环境
主机名IPka1172.25.254.10/24ka2172.25.254.20/24realserver1172.25.254.110/24realserver2172.25.254.120/24
各节点时间必须同步ntp, chrony 关闭防火墙及SELinux 各节点之间可通过主机名互相通信非必须 建议使用/etc/hosts文件实现非必须 各节点之间的root用户可以基于密钥认证的ssh服务完成互相通信非必须
2.4 Keepalived 相关文件
软件包名keepalived 主程序文件/usr/sbin/keepalived 主配置文件/etc/keepalived/keepalived.conf 配置文件示例/usr/share/doc/keepalived/ Unit File/lib/systemd/system/keepalived.service Unit File的环境配置文件/etc/sysconfig/keepalived
2.5 安装软件 [rootka1 ~]# dnf install keepalived -y [rootka1 ~]# systemctl start keepalived 2.6 KeepAlived 配置说明 配置文件/etc/keepalived/keepalived.conf GLOBAL CONFIGURATION Global definitions 定义邮件配置 route_id vrrp 配置多播地址等 VRRP CONFIGURATION VRRP instance(s) 定义每个vrrp虚拟路由器 LVS CONFIGURATION Virtual server group(s) Virtual server(s) LVS集群的VS 和 RS 2.6.1 配置虚拟路由
配置master:
vim /etc/keepalived/keepalived.confglobal_defs {notification_email {2961953033qq.com #keepalived 发生故障切换时邮件发送的目标邮箱可以按行区分写多个}notification_email_from keepalivedka1.exam.org #发邮件的地址smtp_server 127.0.0.1 #邮件服务器地址smtp_connect_timeout 30 #邮件服务器连接timeoutrouter_id ka1.exam.org #每个keepalived主机唯一标识多节点 重名不影响vrrp_skip_check_adv_addr #对所有通告报文都检查会比较消耗性能 启用此配置后如果收到的通告报文和上 一个报文是同一个路由器则跳过检查 默认值为全检查#vrrp_strict #严格遵循vrrp协议#启用此项后以下状况将无法启动服务:1.无VIP地址2.配置了单播邻居3.在VRRP版本2中有IPv6地址#建议不加此项配置vrrp_garp_interval 0 #报文发送延迟0表示不延迟vrrp_gna_interval 0 #消息发送延迟vrrp_mcast_group4 224.0.0.18 #指定组播IP地址范围
}
配置slave:
vrrp_instance VI_1 {state MASTERinterface eth0 #绑定为当前虚拟路由器使用的物理接口如eth0,可以和 VIP不在一个网卡virtual_router_id 100 #每个虚拟路由器惟一标识,范围0-255每个虚拟路由器此 值必须唯一否则服务无法启动同属一个虚拟路由器的多个keepalived节点必须相同务必要确认在同一网络中此值必须唯一priority 100 #当前物理节点在此虚拟路由器的优先级范围1-254值越大优先级越高,每个keepalived主机节点此值不同advert_int 1 #vrrp通告的时间间隔默认1sauthentication { #认证机制auth_type PASS #PASS为简单密码(建议使用)auth_pass 1111 #预共享密钥仅前8位有效同一个虚拟路由器的多个keepalived节点必须一样}virtual_ipaddress { #虚拟IP,生产环境可能指定上百个IP地址172.25.250.100/24 dev eth0 label eth0:1 #IPADDR dev STRING scope SCOPE label LABEL#指定VIP不指定网卡默认为eth0,注意不指 定/prefix,默认32}
}
2.6.2 示例 keepalived配置文件中配置虚拟路由
ka1和ka2中安装软件包yum install keepalived -y主配置文件/etc/keepalived/keepalived.conf默认为抢占模式
vim /etc/keepalived/keepalived.conf
配置全局参数
global_defs {notification_email {2961953033qq.com18883572121163.com}notification_email_from keepalivedtimingding.orgsmtp_server 127.0.0.1smtp_connect_timeout 30router_id ka1.timingding.orgvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_mcast_group4 224.0.0.18
}配置vip
vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 100priority 100advert_int 1nopreemptauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}
}systemctl start keepalived.service
查看 这里简便快捷一下使用scp命令直接传到另一台ka上面 直接传到ka2上面 scp /etc/keepalived/keepalived.conf root172.25.254.20:/etc/keepalived/keepalived.conf ka2上面的优先级设置的低一些
ka2配置vip的地方要改优先级vrrp_instance VI_1 {state BACKUP ------ 改为BACKUPinterface eth0virtual_router_id 100priority 80 ------ 改的比ka1低一些advert_int 1authentication {auth_type PASSauth_pass 1111}
2.6.2.1 抓包命令查看组播信息 tcpdump -i eth0 -nn host 224.0.0.18 此时ping 172.25.254.100 不通。 命令查看 iptables -nL 想ping通得在全局配置里面加参数 vrrp_iptables不想加就可以把vrrp_strict注释掉要么都开要么就注释掉
ka1和ka2都要加
global_defs {notification_email {2961953033qq.com18883572121163.com}notification_email_from keepalivedtimingding.orgsmtp_server 127.0.0.1smtp_connect_timeout 30router_id ka1.timingding.orgvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_mcast_group4 224.0.0.18vrrp_iptables ------ 加这个参数
}此时就可以ping通172.25.254.100了。
2.6.3 实现独立子配置文件
vim /etc/keepalived/keepalived.conf
把虚拟路由注释掉
#vrrp_instance VI_1 {
# state MASTER
# interface eth0
# virtual_router_id 100
# priority 100
# advert_int 1
# authentication {
# auth_type PASS
# auth_pass 1111
# }
# virtual_ipaddress {
# 172.25.254.100/24 dev eth0 label eth0:1
# }
#}
加上
include /etc/keepalived/conf.d/*.confvim /etc/keepalived/conf.d/172.25.254.100.confvrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 100priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}
}systemctl restart keepalived.service
三.Keepalived 应用示例
3.1 实现master/slave的 Keepalived 单主架构
3.1.1 配置MASTER [rootka1 ~]# vim /etc/keepalived/keepalived.confglobal_defs {notification_email {2961953033qq.com18883572121163.com}notification_email_from keepalivedtimingding.orgsmtp_server 127.0.0.1smtp_connect_timeout 30router_id ka1.timingding.orgvrrp_skip_check_adv_addr#vrrp_strict vrrp_garp_interval 0vrrp_gna_interval 0#vrrp_mcast_group4 224.0.0.18#vrrp_iptables
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 100priority 100advert_int 1#preempt_delay 5sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}
}
3.1.2 配置BACKUP
[rootka2 ~]# vim /etc/keepalived/keepalived.conf global_defs {notification_email {2961953033qq.com18883572121163.com}notification_email_from keepalivedka2.timingding.orgsmtp_server 127.0.0.1smtp_connect_timeout 30router_id ka2.timingding.orgvrrp_skip_check_adv_addr#vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_mcast_group 224.0.0.18#vrrp_iptables
}vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 100priority 80advert_int 1#preempt_delay 5sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}
}3.1.3 抓包查看 tcpdump -i eth0 -nn host 224.0.0.18 3.2 抢占模式和非抢占模式 默认为抢占模式preempt即当高优先级的主机恢复在线后会抢占低先级的主机的 master 角色 这样会使vip 在 KA 主机中来回漂移造成网络抖动 建议设置为非抢占模式 nopreempt 即高优先级主机恢复后并不会抢占低优先级主机的 master 角色 非抢占模块下,如果原主机 down 机 , VIP 迁移至的新主机 , 后续也发生 down 时 , 仍会将 VIP 迁移回原主机 master角色下线后会转移到另一台主机后master角色重新恢复之后不会因为优先级抢占vip
3.2.1 非抢占模式 使用参数nopreempt ka1和ka2一样
vim /etc/keepalived/keepalived.confvrrp_instance VI_1 {state BACKUP ---- 也得设置为BACKUP两台都为备机interface eth0virtual_router_id 100 priority 100advert_int 1nopreempt ------- 加上这个参数authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}
}3.2.2 抢占延迟模式 使用参数preempt_delay 抢占延迟模式即优先级高的主机恢复后不会立即抢回VIP而是延迟一段时间默认300s再抢回 VIP ka1主机上ka2也一样
vim /etc/keepalived/keepalived.confvrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 100priority 100advert_int 1preempt_delay 5s ---- 抢占延时为5s一般设定一分钟五分钟这里演示。authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}3.3vip单播模式
ka1主机上ka2也一样
vim /etc/keepalived/keepalived.confvrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 100priority 80advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}unicast_src_ip 172.25.254.10 ---- 指定谁到谁 ka2上相反unicast_peer {172.25.254.20}3.3.1 抓包命令查看 ka2上看不到因为没有vip [rootka1 ~]# tcpdump -i eth0 -nn src host 172.25.254.10 and dst 172.25.254.20 3.4 keepalived实现邮件通知
安装邮件发送工具
dnf install mailx -yQQ邮箱配置
vim /etc/mail.rcset from2961953033qq.com
set smtpsmtp.qq.com
set smtp-auth-user2961953033qq.com
set smtp-auth-passwordgyzvbkvimprddecb ---- 去QQ邮箱上面登录弄授权码
set smtp-authlogin
set ssl-verifyignore测试发送邮件
echo test message |mail -s test 2961953033qq.com写个脚本
vim /etc/keepalived/mail.sh#!/bin/bash
mail_dst2961953033qq.com
send_message()
{mail_subHOSTNAME to be $1 vip mopvemail_msgdate %F\ %T: vrrp move $HOSTNAME chage $1echo $mail_msg | mail -s $mail_sub $mail_dst
}case $1 inmaster)send_message master;;backup)send_message backup;;fault)send_message fault;;*);;
esacchmod x /etc/keepalived/mail.sh在ka1和ka2虚拟路由上面添加节点
vim /etc/keepalived/keepalived.confvrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 100priority 80advert_int 1#preempt_delay 5sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}unicast_src_ip 172.25.254.20unicast_peer {172.25.254.10}notify_master /etc/keepalived/notify.sh master ----- 添加这三行notify_backup /etc/keepalived/notify.sh backupnotify_fault /etc/keepalived/notify.sh fault
}3.5 实现keepalived的双主架构 master/master master/slave的单主架构同一时间只有一个Keepalived 对外提供服务此主机繁忙而另一台主机却 很空闲利用率低下可以使用master/master 的双主架构解决此问题。 master/master 的双主架构 即将两个或以上VIP分别运行在不同的 keepalived 服务器以实现服务器并行提供 web 访问的目的提高 服务器资源利用率 ka1和ka2上都加上都有一个主备
vim /etc/keepalived/keepalived.confvrrp_instance VI_2 {state MASTWEinterface eth0virtual_router_id 200priority 80 ----- 优先级不能一样advert_int 1#preempt_delay 5sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.200/24 dev eth0 label eth0:2}unicast_src_ip 172.25.254.10unicast_peer {172.25.254.20}
}
3.6 实现IPVS的高可用性DR模式
3.6.1 应用层监测 应用层检测 HTTP_GET|SSL_GET HTTP_GET|SSL_GET {url {path URL_PATH #-----------定义要监控的URLstatus_code INT #---------判断上述检测机制为健康状态的响应码一般为 200}connect_timeout INTEGER #---------客户端请求的超时时长, 相当于haproxy的timeout servernb_get_retry INT #---------重试次数delay_before_retry INT #---------重试之前的延迟时长connect_ip IP ADDRESS #---------向当前RS哪个IP地址发起健康状态检测请求connect_port PORT #--------向当前RS的哪个PORT发起健康状态检测请求bindto IP ADDRESS #---------向当前RS发出健康状态检测请求时使用的源地址bind_port PORT #----------向当前RS发出健康状态检测请求时使用的源端口
} 3.6.2 TCP监测 TCP_CHECK {connect_ip IP ADDRESS #----------向当前RS的哪个IP地址发起健康状态检测请求connect_port PORT #---------向当前RS的哪个PORT发起健康状态检测请求bindto IP ADDRESS #--------发出健康状态检测请求时使用的源地址bind_port PORT #---------发出健康状态检测请求时使用的源端口connect_timeout INTEGER #------客户端请求的超时时长#-------等于haproxy的timeout server
} 3.6.3 实现单主的 LVS-DR 模式 永久设定vip
vim /etc/sysconfig/network-scripts/ifcfg-lo 加上
IPADDR1172.25.254.100
NETMASK1255.255.255.255
NETWORK127.0.0.0这里我们给上临时的就行
reslserver1和2上面给上vip临时
ip a a 172.25.254.100 dev lo解决响应问题
查看arp:
sysctl -a | grep arpka1上面
vim /etc/sysctl.d/arp.conf
net.ipv4.conf.all.arp_ignore1
net.ipv4.conf.all.arp_announce2
net.ipv4.conf.lo.arp_announce2
net.ipv4.conf.lo.arp_ignore1用scp命令写到ka2上面
scp /etc/sysctl.d/arp.conf root172.25.254.110:/etc/sysctl.d/arp.confka1和ka2上面安装ipvsadm 用来查看策略
yum install ipvsadm -yka1和ka2一样
vim /etc/keepalived/keepalived.confvirtual_server 172.25.254.100 80 {delay_loop 6lb_algo wrrlb_kind DR#persistence_timeout 50protocol TCPreal_server 172.25.254.110 80 {weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3nb_get_retry 2delay_before_retry 2}}real_server 172.25.254.120 80 {weight 1HTTP_GET {url {path /status_code 200}connect_timeout 3nb_get_retry 2delay_before_retry 2}}
}ssytemctl restart keepalived.service使用ipvsadm -Ln 查看策略是否写进去
3.7 vrrp Script 配置 脚本控制vip
3.7.1 利用脚本实现主从角色切换
示例先用例子测试一下
检测文件是否存在存在为真(1)ka1就降低优先级vip飘到ka2上面不存在为假(0)vip就按兵不动
[rootka1 ~]# vim /etc/keepalived/test.sh
#!/bin/bash
[ ! -f /mnt/ding ] ---- 取反chmod x /etc/keepalived/test.sh ---- 给上可执行权限[rootka1 ~]# vim /etc/keepalived/keepalived.confvrrp_script check_file {script /etc/keepalived/test.sh ------shell命令或脚本的路径interval 1 ------ 检测的间隔时间默认为1sweight -30 ------ 默认为零这里测试设置-30当运行脚本检测到之后为非0就会与VIP的优先级相加优先 降低实现VIP飘移为0时就VIP就按兵不动。fall 2 ------ 脚本连续几次都执行失败则转换为失败建议设置为2以上rise 2 ------ 执行脚本连续几次都成功把服务器标记为成功timeout 2 ------ 设置的超时时间。
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 100priority 100advert_int 1#preempt_delay 5sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}unicast_src_ip 172.25.254.10unicast_peer {172.25.254.20}track_script { ------ 调用这个script配置参数check_file}
}[rootka1 ~]# systemctl restart keepalived.service sh /etc/keepalived/test.sh
echo $?0
此时/mnt底下没有ding这个文件运行脚本输出0VIP就按兵不动 此时在/mnt底下创建ding这个文件输出为非0执行脚本此时vip飘到ka2上面 touch /mnt/ding sh /etc/keepalived/test.sh echo $? 1 ka1上面 ka2上面 删除这个文件之后VIP就自动飘回来了 rm -rf /mnt/ding systemctl restart keepalived.service ifconfig 3.8 keepalived-haproxy实现高可用
3.8.1 还原状态
两台ka1和ka2上安装haproxy
yum install haproxy -y把两台server机上面的VIP和arp响应给去掉
[rootrealserver1 ~]# ip a d 172.25.254.100/32 dev lo
[rootrealserver2 ~]# ip a d 172.25.254.100/32 dev loarp响应
[rootrealserver1 ~]# vim /etc/sysctl.d/arp.conf
[rootrealserver2 ~]# vim /etc/sysctl.d/arp.confnet.ipv4.conf.all.arp_ignore0
net.ipv4.conf.all.arp_announce0
net.ipv4.conf.lo.arp_announce0
net.ipv4.conf.lo.arp_ignore0sysctl --system ---- 查看ka1和ka2上都开启内核路由
[rootka1 ~]# vim /etc/sysctl.conf
[rootka2 ~]# vim /etc/sysctl.conf et.ipv4.ip_nonlocal_bind1 ---- 两台都开启内核路由sysctl -p ----- 刷新一下记住要把之前做的LVS给注释掉lvs和haproxy不能同时使用
[rootka1 ~]# vim /etc/haproxy/haproxy.cfg
[rootka2 ~]# vim /etc/haproxy/haproxy.cfglisten webclusterbind 172.25.254.100:80mode httpbalance roundrobinserver web1 172.25.254.110:80 check inter 3 fall 2 rise 5server web1 172.25.254.120:80 check inter 3 fall 2 rise 5查看端口是否开启
[rootka1 ~]# netstat -antlupe | grep haproxy
tcp 0 0 172.25.254.100:80 0.0.0.0:* LISTEN 0 2636800 5709/haproxy
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 0 2636798 5709/haproxy
udp 0 0 0.0.0.0:35424 0.0.0.0:* 0 2636799 5708/haproxy
[rootka1 ~]#
3.8.2 实现haproxy高可用
如何检测haproxy的存活状态
killall -0 haproxy写入之前示例的那个脚本
[rootks2 ~]# vim /etc/keepalived/test.sh
#!/bin/bash
killall -0 haproxy[rootka1 ~]# vim /etc/keepalived/keepalived.conf
[rootka2~]# vim /etc/keepalived/keepalived.conf vrrp_script check_haproxy {script /etc/keepalived/test.sh interval 1 weight -30 fall 2 rise 2 timeout 2
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 100priority 100advert_int 1#preempt_delay 5sauthentication {auth_type PASSauth_pass 1111}virtual_ipaddress {172.25.254.100/24 dev eth0 label eth0:1}unicast_src_ip 172.25.254.10unicast_peer {172.25.254.20}track_script { check_haproxy}
}systemctl restart keepalived.service
3.8.3 测试 复制一个ka1出来写个死循环 while true do curl 172.25.254.100;sleep 0.5 done 把ka1上的haproxy挂掉这边不会受影响一直循环VIP会飘到ka2上面 把ka1上面的haproxy给挂掉 [rootka1 ~]# systemctl stop haproxy.service 此时ka1上面没有VIP了 查看ka2上面 把ka1上面的haproxy重新启动VIP又回来了 systemctl start haproxy.service 死循环也不会受影响因为ka1上面haproxy挂掉了ka1上的VIP优先级降低飘到ka2上面去了ka2上面的haproxy还存活也有VIP所以死循环会一直能访问。最终不会影响架构的最终访问。 至此keepalived-haproxy就实现了高可用