代码之家  ›  专栏  ›  技术社区  ›  Dan

群集IP和节点端口IP地址是否在不同节点之间进行负载平衡?

  •  4
  • Dan  · 技术社区  · 7 年前

    我有一个名为“后端应用”的应用部署,它运行在多个不同节点上的pod中。我还有一个服务,它将“后端应用程序”作为我的“前端应用程序”播客公开,供其他集群内部播客访问。

    如果我使用DNS从名为“前端应用程序”的不同应用程序部署连接到“后端应用程序”,请求是否会负载平衡到每个节点上的每个“后端应用程序”pod?

    听起来NodePort服务只会连接到一个节点,而不会将我的请求负载平衡到其他节点。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Janos Lenart    7 年前

    对于每个服务 type: NodePort 在所有节点上打开一个端口(每个节点上的端口相同)。无论该服务的pod是否在节点上运行,该端口都是打开的。负载平衡是在所有节点的所有pod之间完成的,不优先选择在节点端口上连接的同一节点上运行的pod(如果有)。

        2
  •  1
  •   Dan    7 年前

    服务自动对分配给它们的POD进行负载平衡。看见 https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#creating-a-service

    使用服务创建的集群IP地址是IP地址,它将自动选择运行pod的任何节点上的可用pod。您可以使用DNS查找来查找服务的群集IP地址。

    我感到困惑,因为我没有意识到集群IP地址与服务相关,而不是与特定的Pod相关。

    不过,我目前还不确定NodePort是如何处理这个问题的。