【问题标题】:From Ingress to NodePort service从 Ingress 到 NodePort 服务
【发布时间】:2020-01-23 12:38:57
【问题描述】:

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

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

类似于 ALB > 随机节点 kube-proxy > 节点端口 32509 (?) > Pod 端口 80?

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

【问题讨论】:

    标签: amazon-web-services kubernetes load-balancing kubernetes-ingress amazon-eks


    【解决方案1】:

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

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

    问题是,如果这个特定节点上没有 NodePort 服务的 Pod,那么请求就会被丢弃。这是here详细解释。

    【讨论】:

    • 谢谢。是的,我已经在使用 podAntiAffinity。我想我必须在每个节点上至少有一个目标 pod 才能正常工作。
    • 是的,完全正确。因此,适当的 pod 反关联性和至少与工作节点一样多的 pod 应该可以保证这一点。
    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 2022-01-15
    • 2020-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多