V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sidewalkerLin
V2EX  ›  Kubernetes

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

  •  
  •   sidewalkerLin · 2023-11-06 02:28:19 +08:00 · 1283 次点击
    这是一个创建于 413 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在 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 的数量越多,平均查找时间就越长

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

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

    故都有关系
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:46 · PVG 02:46 · LAX 10:46 · JFK 13:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.