在 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 的数量越多,平均查找时间就越长
1
sidewalkerLin OP 呃是不是这样,查询时间是跟 iptables 规则的数量有关?时间复杂度是 O(n),然后规则的数量最少是 service 数量×pod 数量,所以是跟 service 数量和 pod 数量都有关系的,gpt4 之所以那样回答是因为 service 占大头?
|
2
lrh3321 2023-11-06 07:43:20 +08:00
service 数量,每个 service 都有自己对应的 Chain ,匹配进入对应 SVC chain 的规则都在同一个大的 Chain 下,这个东西是线性的。pod 数量多只会影响到对应 SVC chain 里面的处理能力,对其他 SVC 没影响
|
3
devopsdogdog 2023-11-06 09:47:58 +08:00 1
@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 |
4
julyclyde 2023-11-06 11:30:03 +08:00
你为什么首先假定非此即彼然后去问呢?
|
5
hancai 2023-11-06 11:35:18 +08:00
以为粗鄙的理解是受 svc 的影响,主要规则数量太多了
|
6
lvlongxiang199 2023-11-06 13:43:41 +08:00
你试试
|
7
sidewalkerLin OP @lrh3321 我查了一下好像确实是这样,在查询的时候性能主要跟 svc 的数量有关,只需要找到对应 svc chain ,但是增删改的时候可能会造成大量规则甚至全量规则的变动,所以跟规则的数量有关,所以跟 svc 数量的 pod 数量都有比较大的关系
|
8
misoomang 364 天前
集群里每新增一个 Service 在每个宿主机的 iptables 都会增加一条 iptables 规则,而每条 iptables 规则都有与 Pod 对应的集合
所以 Service 多了 iptables 会变多,Pod 多了对应的规则维护与 Pod 对应关系的集合也会多 故都有关系 |