1
risky 2022-09-12 11:19:43 +08:00
cy ,1.24.3 的集群,确实没有端口了,一度以为是故障,原因未知
|
2
fengye0509 2022-09-12 11:25:25 +08:00
nodeport 访问是正常的 --这个表现是什么样的?
|
3
lozzow 2022-09-12 11:39:07 +08:00 via Android
用 iptables 做了转发吧
|
4
momocraft 2022-09-12 11:42:39 +08:00
在 node 上也看不到 -- 这个是指怎么看的
|
5
Cyshall 2022-09-12 12:08:18 +08:00 via iPhone
是用 netstat 看的端口监听这种吗?
|
6
lhx2008 2022-09-12 12:55:47 +08:00
以前端口监听也只是占住端口不让不让别人用了,实际是走的 iptables ,不过如果是外部访问就比较麻烦了
|
7
xzysaber 2022-09-12 13:08:19 +08:00
iptables -tnat -L 看看吧。
|
8
zhoudaiyu OP |
10
momocraft 2022-09-12 20:22:56 +08:00
我也遇到到过 k8s 服务 listen 的端口用 netstat 看不到的情况
可能和 network ns 有关 |
11
dyrex 2022-09-12 22:13:19 +08:00 via Android
是的,高版本的 k8s 确实不再监听端口了,直接走 ipve 规则了
|
13
zhoudaiyu OP |
14
zhoudaiyu OP @momocraft #10 可是问题是 2 个集群都这样,内核啥的也都不一样,不知道为啥,可能是#12 大哥说的确实不监听了吧
|
15
lrh3321 2022-09-13 09:05:15 +08:00
是 kube-proxy 自动选择用 ipvs 模式了吧。ipvs 模式估计就不用再额外去占住端口了
|
16
julyclyde 2022-09-13 10:17:28 +08:00
不是很古代 kube-proxy 就用 iptables 了吗?
我记得好像 2018 年还是 2019 年开始? |
17
julyclyde 2022-09-13 10:18:15 +08:00 1
你的监控脚本从设计上就有问题啊
不是以是否能连通为检查标准,而是以是否有监听为检查标准? |
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 连接。 |