K8S之长连接负载均衡问题
💡
原文中文,约1400字,阅读约需4分钟。
📝
内容提要
本文介绍了解决 Kubernetes 生产环境中流量不均的问题的方案,包括kube-proxy使用默认的iptables做负载均衡时可能出现的偏差较大的情况,以及两种场景下的负载不均问题和最佳实践。建议将kube-proxy的ipvs转发模式设置为sh,以保证负载均衡。同时,文章也介绍了ipvs和iptables的差别。
🎯
关键要点
-
本文介绍了解决Kubernetes生产环境中流量不均的问题的方案。
-
流量不均的原因是kube-proxy使用默认的iptables做负载均衡,采用概率方式转发。
-
在滚动更新时,旧Pod的连接逐渐断掉,导致新Pod接收到的连接数不均。
-
长连接服务的连接保持时长差异可能导致负载不均,使用rr策略时某些Pod连接数过多。
-
建议将kube-proxy的ipvs转发模式设置为sh,以保证负载均衡。
-
ipvs相比iptables提供更好的可扩展性和性能,支持更复杂的负载均衡算法。
-
在HPA自动扩容时,长连接可能导致新Pod几乎没有连接,造成扩容失效。
-
最佳实践包括业务层面自动重连,避免连接固化到某个后端Pod上。
🏷️
标签
➡️