为什么在节点上使用 netstat 命令无法看到 NodePort 服务的端口?

为什么在节点上使用 netstat 命令无法看到 nodeport 服务的端口?

NodePort服务类型在节点上netstat看不到nodePort端口的原因

NodePort类型的服务在节点上使用iptables规则将流量转发到匹配的服务pod上。因此,虽然可以使用curl从本地主机访问nodePort端口,但netstat不会显示任何监听该端口的进程。

在NodePort服务中,nodePort指定了服务在节点上的端口。当请求到达nodePort端口时,iptables规则会将流量转发到具有匹配标签的pod的实际端口。这种转发通过在pod节点上创建一条iptables规则来实现。

在给定示例中,NodePort服务"tomcat-service"配置了nodePort 31002,用于转发到节点上具有标签"tier: frontend"的pod的端口8080。当请求到达节点上的端口31002时,iptables规则会将流量转发到pod的端口8080。

因为nodePort端口没有实际的进程在此端口上监听,所以netstat命令无法检测到它。它只会显示正在监听的端口,这些端口通常与实际进程关联。

以上就是为什么在节点上使用 netstat 命令无法看到 NodePort 服务的端口?的详细内容,更多请关注硕下网其它相关文章!