银河麒麟KY10上Keepalived部署失败的四大解决方法:一、在线YUM源安装法(推荐);二、离线源码编译安装法(适配信创环境);三、主备节点差异化配置法(防脑裂);四、健康检查脚本联动配置法(提升故障感知精度)。

如果您在银河麒麟操作系统(特别是KY10系列)上部署高可用服务,但Keepalived无法正常安装或配置失败,则可能是由于系统版本识别错误、依赖缺失、源配置异常或网卡/路由参数不匹配所致。以下是针对麒麟OS的多种可行安装与配置方法:
一、在线YUM源安装法(推荐首选)
该方法适用于已配置有效软件源且网络连通的生产环境,可自动解决大部分依赖关系,并生成标准配置路径。
1、执行系统版本确认命令,确保为服务器版KY10:cat /etc/kylin-release | grep "Kylin Linux Advanced Server release V10"。
2、刷新YUM缓存并检查源可用性:sudo yum makecache;若提示“无法解析主机”,需编辑/etc/yum.repos.d/kylin-v10.repo,替换为清华源或中科大源地址。
3、安装Keepalived主程序及必要依赖:sudo yum install -y keepalived openssl-devel libnl3-devel popt-static。
4、验证安装结果:keepalived --version,输出应为2.0.x或更高版本。
二、离线源码编译安装法(适配无网/定制内核环境)
该方法适用于飞腾/鲲鹏等自主平台且无法联网的信创环境,可精确控制IPVS与IPv6支持能力,避免因预编译包缺失模块导致vrrp通信失败。
1、上传Keepalived源码包(如keepalived-2.2.8.tar.gz)至/home/os/src/目录。
2、安装基础编译工具与头文件:sudo yum install -y gcc make kernel-devel openssl-devel libnl3-devel popt-static;若提示包不可用,需手动下载对应架构RPM包并rpm -ivh安装。
3、解压并进入源码目录:tar -zxvf keepalived-2.2.8.tar.gz && cd keepalived-2.2.8。
4、执行配置命令,显式启用IPVS支持:./configure --prefix=/usr/local/keepalived --enable-ipvs --with-kernel-dir=/usr/src/kernels/$(uname -r)。
5、编译并安装:make && sudo make install;随后创建软链接:sudo ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived。
三、主备节点差异化配置法(防止脑裂与VIP冲突)
该方法聚焦于vrrp_instance核心参数的严格区分,确保同一虚拟路由器ID下仅一台主机持有VIP,避免因priority或state配置雷同引发双MASTER现象。
1、主节点配置中设置:state MASTER,priority 101,nopreempt(非抢占模式需配合weight使用)。
2、备节点配置中设置:state BACKUP,priority 90,mcast_src_ip指定本机真实IP(如10.1.19.63),严禁留空或填VIP。
3、两节点必须统一virtual_router_id 51(范围1–255),且局域网内不可重复;interface值须通过ip a确认真实网卡名(如ens33、bond0),禁用eth0硬编码。
4、认证密码必须一致且长度≥8位:auth_pass MySecureVRRP@2026,禁止明文弱口令如123456。
四、健康检查脚本联动配置法(实现Nginx服务级故障感知)
该方法将Keepalived与业务进程状态深度绑定,当Nginx崩溃时主动降低priority触发VIP漂移,而非仅依赖网络层心跳,显著提升故障响应精度。
1、在/etc/keepalived/check_nginx.sh中编写检测逻辑:#!/bin/bash pgrep nginx > /dev/null || exit 1;赋予执行权限:chmod +x /etc/keepalived/check_nginx.sh。
2、在keepalived.conf的global_defs块后添加vrrp_script定义:vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval 3 fall 2 rise 2 weight -20 }。
3、在vrrp_instance块内加载该脚本:track_script { chk_nginx };确保主节点初始priority(101)减去weight(-20)后仍高于备节点(90),否则漂移失效。
4、启动前关闭SELinux临时策略:sudo setenforce 0;防火墙放行VRRP组播流量:sudo firewall-cmd --add-rich-rule='rule protocol value="224.0.0.18" accept' --permanent。

















