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上。

➡️

继续阅读