云服务器热扩容后动态平滑修改多内网VPC的VIP,需满足Keepalived主备集群、同子网、预留IP等前提,通过配置更新→reload→校验三步实现无中断热更,跨VPC须独立部署并借助对等连接或CEN互通。

确认VIP部署前提是否满足
动态修改VIP的前提是已基于Keepalived或类似高可用软件构建主备集群,且所有节点处于同一VPC子网内。若尚未部署,请先完成以下准备:
- VIP必须是从子网CIDR中预留的未分配IP,不能与任何实例主IP或辅助IP冲突;
- 所有参与VIP漂移的云服务器已关闭IP转发(
net.ipv4.ip_forward = 0),除非业务明确需要并在Keepalived配置中动态控制; - Keepalived版本 ≥ 1.2.24,推荐使用单播(unicast)模式通信,避免组播依赖和广播风暴风险;
- 安全组/网络ACL放通VRRP协议(协议号112)及必要端口(如健康检查端口);
- 主备节点均绑定同一弹性网卡(主网卡),且未绑定DNAT、虚拟IP或负载均衡后端规则。
热扩容后触发VIP重配的典型场景
常见需动态调整VIP的情形包括:新增备节点加入集群、子网网段变更、原VIP被占用或规划调整。此时不能重启服务,应通过脚本驱动Keepalived重载+网络层同步:
IT技术解决互联网公司网站模板是一款适合提供APP设计、网页开发、SEO优化、云服务、数据分析等服务的互联网公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
- 扩容后新实例加入集群前,先在私有网络控制台为其弹性网卡分配辅助内网IP(非主IP),用于后续VIP绑定;
- 确保新实例的内核支持VIP绑定(
ip addr add dev eth0 [VIP]/32 scope link),无需配置网关或路由; - 所有节点的Keepalived配置中,
vrrp_instance块需统一使用virtual_ipaddress声明VIP,并启用notify_master / notify_backup脚本钩子; - 主节点切换时,由notify脚本自动执行服务启停、iptables规则更新、应用监听地址重绑等动作。
平滑修改VIP的脚本逻辑设计
不建议直接用ip addr命令硬删加VIP,而应交由Keepalived管理。脚本只需完成“配置更新→平滑重载→状态校验”三步:
- 将新VIP写入Keepalived配置模板(如
/etc/keepalived/keepalived.conf中的virtual_ipaddress列表),替换旧VIP; - 执行
keepalived -t语法校验,再运行systemctl reload keepalived(非restart),实现无中断配置热更; - 通过
ip addr show dev eth0 | grep [VIP]和systemctl is-active keepalived双校验,确认VIP已在主节点生效且Keepalived状态为active; - 可选:在notify脚本中加入curl健康检查,确保应用监听新VIP端口后才宣告切换完成。
跨VPC场景下VIP不可直接复用
当前主流云平台(含腾讯云、华为云)不支持VIP跨VPC漂移。所谓“多内网VPC的虚拟IP”,实际是指多个VPC各自独立部署一套VIP+Keepalived集群。若需跨VPC互通,应通过以下方式间接实现:
- 在各VPC间建立对等连接(Peering)或云企业网(CEN),确保底层网络三层可达;
- 将各VPC内的VIP所在子网加入路由表,使流量能经由对等连接到达目标VPC;
- 对外暴露时,统一使用EIP+DNAT映射到各VPC主VIP,或通过全局负载均衡(GSLB)按地域/权重调度;
- 禁止在不同VPC的实例上配置相同VIP,否则ARP冲突会导致网络异常。

















