【问题标题】:How kubernetes external ip multi-pod routing works?kubernetes外部ip多pod路由是如何工作的?
【发布时间】:2020-09-01 01:45:38
【问题描述】:

我在外部 IP 上有带有 haproxy 入口控制器(守护程序集)的裸机 Kubernetes 集群。是否可以限制 kube-proxy 路由到本地 haproxy ingress pod?

更具体地说,我有 2 个 haproxy 入口控制器 pod,并为它们使用一个外部 IP。据我了解,kube-proxy 将以循环方式路由到 Pod。我没有找到任何方法来限制这种特殊行为。

【问题讨论】:

  • 你的意思是你不希望 pod 绑定到来自外部 IP 的端口?
  • 更具体。我有 2 个 haproxy 入口控制器 pod,并为它们使用一个外部 IP。据我了解,kube-proxy 将以循环方式路由给他们。我没有找到任何方法将这种行为限制在本地 pod。
  • 我认为你的意思是每个节点都有一个 haproxy 入口控制器实例作为守护程序集暴露为 NodePort,所以每个 HaProxy 都有一个外部 IP 和一个 > 30000 的端口。所以如果你想要循环访问 haproxy 入口控制器,你需要一个负载均衡器。
  • 不,我在服务中使用外部 ip。我有像 80 443 这样的真实端口。

标签: kubernetes haproxy haproxy-ingress


【解决方案1】:

在 NodePort 服务中设置externalTrafficPolicy: Local

这将使流向节点 X 的流量仅流向节点 X 中的 pod。如果节点 X 中没有 pod,则流量将被丢弃(但这应该不是问题,因为您是使用 DaemonSet)。

另一个好处是这样可以保留 haproxy 看到的真实源 IP。如果没有externalTrafficPolicy,haproxy 可能会看到另一个节点的源 IP 而不是原始 IP,因为节点可以代理流量。

更多信息here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-21
    • 2019-09-16
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 1970-01-01
    相关资源
    最近更新 更多