【集群负载均衡案例】LVS负载均衡集群升级时收到DNSPod告警

【问题描述】

最近遇到的一个问题,LVS负载均衡集群升级过程中,DNSPod出现主站点连接异常的告警,手动切换流量至灾备服务器应急恢复对外业务。

附:本案例是写给自己看的,先做一个记录,部分技术基础需要再完善,部分地方描述不准确后面来纠正。

【组网图】

 

【处理过程】

  1. 在感知到DNSPod(企业版)短信告警后,立即登录DNSPod平台,确认主站点这边链路异常了。
  2. 马上修改DNSPod的解析记录,将流量切换至灾备服务器。
  3. 经过x小时分析定位和分析日志后,确认是LVS负载均衡集群升级过程中,前端主机和后端主机之间链路不通导致的问题。集群升级完成后,再手动修改DNSPod将流量切回主长点。

【原因分析】

  1. 容器内的前端应用系统使用TCP长连接到LVS负载军器,当LVS集群内部逐台升级时,前端应用系统感知到链路端口,在当前会话进行重试,重试失败,触发前端应用系统切换到新的容器上。
  2. 由于应用本身的初始化过程较长,初始化还没完成时,当前已连接到LVS集群节点又开始升级,因此触发前端业务系统继续切换容器节点。最后整个容器集群都奔溃了。

【后续建议】

  1. 在前端业务系统中,优化TCP长连接的故障检测和新建链接的机制。
  2. LVS集群增加会话同步机制(可能技术上有难度),那么可以选择现成公有云产品,比如阿里云的负载均衡SLB,https://help.aliyun.com/document_detail/27544.html

2.1会话同步机制的原理:LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。如下图所示,当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上。图中实线表示现有的连接,图中虚线表示当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。

3、LVS集群升级过程中,延迟集群内主机之间的升级间隔,确保业务正常后再进行下一台主机升级(这个方法有点笨,会增加很多工作量)。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值