Kubernetes 节点端口在主机上侦听时不可见,但服务正常

Kubernetes nodeport not visible as listening on host but service working

我在通过节点端口公开的 kubernetes 上有一个服务 运行,如下所示:

test-service                        NodePort    100.100.246.5     <none>        30005:30005/TCP

该服务可以从其他节点访问并且工作正常;但是,如果我执行 netstat -tunlp | grep 30005.

,我看不到 kubernetes 在那个端口上监听

我有 External Traffic Policy: Local,如果我理解正确的话,那应该意味着上面有 pod 的节点应该在所述端口上侦听?同样,一切正常,但我想弄清楚为什么我看不到主机上的端口侦听。

Kubernetes 服务未实现为侦听特定端口的进程。相反,使用 iptables(或 IPVS),服务基本上是 iptables 规则。这就是为什么它们不会出现在您的 netstat 中的原因。您可以找到有关它的更多信息 here