从 Ingress 到 NodePort 服务

From Ingress to NodePort service

在 AWS EKS 上,我有 ALB 入口控制器,入口资源指向端口 32509 上的 NodePort 服务,目标端口为 80,服务 externalTrafficPolicy: Local

在这种情况下,外部流量如何在 NodePort 服务下路由到我的 pods?

比如,ALB > random Node kube-proxy > Node port 32509 (?) > Pod port 80?

编辑:kube-proxy 在 iptables 模式下工作。

NodePort 服务建立在 ClusterIP 之上。但是,如果 externalTrafficPolicy 是本地的,则到达节点的流量只会转发到该节点上的 pods。因此,您的流量路由方式必须是这样的:

ALB -> random node on port 32509 -> random pod on this node on port 80

问题是,如果此特定节点上没有 pods NodePort 服务,则请求将被丢弃。详细解释here