小白请教各路大佬,在 iptables 模式中, kube-proxy 的性能到底是受 service 数量的影响还是受 pod 数量的影响?

191 天前
 sidewalkerLin

在 iptables 模式中,kube-proxy 的性能到底是受 service 数量的影响还是受 pod 数量的影响? 我看网上的文章有些说 pod 数量,有些是说 service 数量,还是说都有影响? gpt4 告诉我是 service 。

以下是 gpt4 的回答: 我:查询时间的长短到底是跟 service 的数量还是跟 pod 的数量有关? gpt4:在 iptables 模式下,查询时间主要是跟 Service 的数量有关,因为 iptables 的规则是基于服务的 ClusterIP 和端口进行匹配的。每个 Service 都会创建一组 iptables 规则来处理到这个 Service ClusterIP 的流量。Endpoint (后端 Pod )的数量变化会导致 iptables 规则的更新,但是对于单个 Service 而言,这些更新只是修改现有的规则,而不是增加更多规则。 Service 数量:每个 Service 在 iptables 中至少会有一条规则(通常是多条),以实现 Service IP 到 Pod IP 的转发。因此,Service 的总数直接影响到 iptables 规则的总数。每次传入流量到达时,iptables 都必须对这些规则进行线性搜索,直到找到匹配的规则。所以 Service 的数量越多,平均查找时间就越长

1003 次点击
所在节点    Kubernetes
8 条回复
sidewalkerLin
191 天前
呃是不是这样,查询时间是跟 iptables 规则的数量有关?时间复杂度是 O(n),然后规则的数量最少是 service 数量×pod 数量,所以是跟 service 数量和 pod 数量都有关系的,gpt4 之所以那样回答是因为 service 占大头?
lrh3321
190 天前
service 数量,每个 service 都有自己对应的 Chain ,匹配进入对应 SVC chain 的规则都在同一个大的 Chain 下,这个东西是线性的。pod 数量多只会影响到对应 SVC chain 里面的处理能力,对其他 SVC 没影响
devopsdogdog
190 天前
@sidewalkerLin 看看这个 书写的。 跟数量 有关,数量越多 规则越多 ,不管是 service 还是 pod 啥 iptable 反正规则多了 就慢。

https://www.thebyte.com.cn/network/netfilter.html#_2-iptables-%E8%87%AA%E5%AE%9A%E4%B9%89%E9%93%BE
julyclyde
190 天前
你为什么首先假定非此即彼然后去问呢?
hancai
190 天前
以为粗鄙的理解是受 svc 的影响,主要规则数量太多了
lvlongxiang199
190 天前
你试试
sidewalkerLin
190 天前
@lrh3321 我查了一下好像确实是这样,在查询的时候性能主要跟 svc 的数量有关,只需要找到对应 svc chain ,但是增删改的时候可能会造成大量规则甚至全量规则的变动,所以跟规则的数量有关,所以跟 svc 数量的 pod 数量都有比较大的关系
misoomang
189 天前
集群里每新增一个 Service 在每个宿主机的 iptables 都会增加一条 iptables 规则,而每条 iptables 规则都有与 Pod 对应的集合

所以 Service 多了 iptables 会变多,Pod 多了对应的规则维护与 Pod 对应关系的集合也会多

故都有关系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/988898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX