新版本的 K8s 在使用 nodeport 类型的 Servive 时在 node 上看不到监听的端口了,请问是做过什么改动吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhoudaiyu
V2EX    Kubernetes

新版本的 K8s 在使用 nodeport 类型的 Servive 时在 node 上看不到监听的端口了,请问是做过什么改动吗?

  •  
  •   zhoudaiyu
    PRO
    2022-09-12 11:08:35 +08:00 via iPhone 4369 次点击
    这是一个创建于 1203 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近搞了一两套新版本的 K8s ( 1.24 和 1.25 ),发现即便 Service 使用 nodeport 暴露,在 node 上也看不到 kube-proxy 监听的端口了,但是 nodeport 访问是正常的。我们用的老版本集群( 1.21.0 和 1.13 )都是有端口监听的。请问是高版本做了哪些改动吗?因为我们大量使用 nodeport ,这样可能要改动 service 的监控脚本。
    20 条回复    2022-09-15 09:24:24 +08:00
    risky
        1
    risky  
       2022-09-12 11:19:43 +08:00
    cy ,1.24.3 的集群,确实没有端口了,一度以为是故障,原因未知
    fengye0509
        2
    fengye0509  
       2022-09-12 11:25:25 +08:00
    nodeport 访问是正常的 --这个表现是什么样的?
    lozzow
        3
    lozzow  
       2022-09-12 11:39:07 +08:00 via Android
    用 iptables 做了转发吧
    momocraft
        4
    momocraft  
       2022-09-12 11:42:39 +08:00
    在 node 上也看不到 -- 这个是指怎么看的
    Cyshall
        5
    Cyshall  
       2022-09-12 12:08:18 +08:00 via iPhone
    是用 netstat 看的端口监听这种吗?
    lhx2008
        6
    lhx2008  
       2022-09-12 12:55:47 +08:00
    以前端口监听也只是占住端口不让不让别人用了,实际是走的 iptables ,不过如果是外部访问就比较麻烦了
    xzysaber
        7
    xzysaber  
       2022-09-12 13:08:19 +8:00
    iptables -tnat -L 看看吧。
    zhoudaiyu
        8
    zhoudaiyu  
    OP
    PRO
       2022-09-12 14:35:35 +08:00 via iPhone
    @risky 我们 24 25 都是这样的,木有端口
    @fengye0509 在集群外访问 nodeport 是没问题的
    @lozzow
    @momocraft 用 ss -antlp 看不到
    @Cyshall 对,我是用的 ss 看的
    @lhx2008 没错,现在就是担心有别人占用端口
    @xzysaber 明天我上班看一下老哥
    Cyshall
        9
    Cyshall  
       2022-09-12 15:05:03 +08:00 via iPhone
    @zhoudaiyu 那这太奇怪了,我用 Linux 这么多年第一听到…
    momocraft
        10
    momocraft  
       2022-09-12 20:22:56 +08:00
    我也遇到到过 k8s 服务 listen 的端口用 netstat 看不到的情况

    可能和 network ns 有关
    dyrex
        11
    dyrex  
       2022-09-12 22:13:19 +08:00 via Android
    是的,高版本的 k8s 确实不再监听端口了,直接走 ipve 规则了
    dyrex
        12
    dyrex  
       2022-09-12 22:13:43 +08:00 via Android
    @dyrex 不好意思打错了,ipvs 规则
    zhoudaiyu
        13
    zhoudaiyu  
    OP
    PRO
       2022-09-12 22:20:14 +08:00
    @dyrex #11
    @dyrex #12 您好,我翻了很久 k8s 版本更新记录和博客,但是没有找到关于这个变化的代码提交记录。您能找到一些相关资料不?十分感谢!
    zhoudaiyu
        14
    zhoudaiyu  
    OP
    PRO
       2022-09-12 22:20:54 +08:00
    @momocraft #10 可是问题是 2 个集群都这样,内核啥的也都不一样,不知道为啥,可能是#12 大哥说的确实不监听了吧
    lrh3321
        15
    lrh3321  
       2022-09-13 09:05:15 +08:00
    是 kube-proxy 自动选择用 ipvs 模式了吧。ipvs 模式估计就不用再额外去占住端口了
    julyclyde
        16
    julyclyde  
       2022-09-13 10:17:28 +08:00
    不是很古代 kube-proxy 就用 iptables 了吗?
    我记得好像 2018 年还是 2019 年开始?
    julyclyde
        17
    julyclyde  
       2022-09-13 10:18:15 +08:00   1
    你的监控脚本从设计上就有问题啊
    不是以是否能连通为检查标准,而是以是否有监听为检查标准?
    Nitroethane
        18
    Nitroethane  
       2022-09-14 18:45:05 +08:00   3
    看看这个 PR:kube-proxy: remove port opener ,https://github.com/kubernetes/kubernetes/pull/108496
    主要原因有两个:一个是 kube-proxy 监听端口是发生在 iptables/ipvs 转发规则建立好之前的,在这段时间内访问这个端口的流量并不会转发到后端容器中,很多客户端此时需要重启以重新建立连接。另一个原因就是这种模式会造成很多 dangling TCP 连接。
    zhoudaiyu
        19
    zhoudaiyu  
    OP
    PRO
       2022-09-14 19:13:13 +08:00
    @julyclyde #17 不是我写的,是别人写的
    julyclyde
        20
    julyclyde  
       2022-09-15 09:24:24 +08:00
    @zhoudaiyu 改改吧
    我觉得这种检查还是“k8s 之前那个时代”的做法
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2611 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 09:40 PVG 17:40 LAX 01:40 JFK 04:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86