背景
kubernetes中的service最开始是利用iptables技术实现,但是后来kubernetes官方抛弃了iptables,改用ipvs来实现service。
Iptables问题
- 规则复杂凌乱,排查问题困难
- 基于链表实现,查找复杂度为
O(n),当规则超过2w条时,内核压力巨大,iptbales将会成为瓶颈
IPVS特点
- 专注于负载均衡技术,且支持多种调度算法
- 基于哈希查找,复杂度为
O(1)
个人思考
为什么要弃用iptables?
Iptables在功能上应该是偏防火墙功能k8s中流量的负载均衡就是利用service来实现的,而ipvs最初的目的就是解决负载问题,ipvs更加专注于负载均衡技术。在这一点上,和service的需求更加契合;而且ipvs的性能还非常好
从以上两点出发,去思考kubenertes为社么要弃用iptables,这样会更简单直接一些!
应该使用ipvs的哪种模式呢?
service是需要支持端口映射的,so,这样一来就只有一种模式可选了——VS/NAT模式

本文探讨了Kubernetes中Service的实现方式变迁,从最初的iptables到后来的IPVS,分析了iptables的局限性和IPVS的优势,包括IPVS的高性能负载均衡技术和适合的VS/NAT模式。
1658

被折叠的 条评论
为什么被折叠?



