当前位置: 首页 > 知识库问答 >
问题:

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

禹正阳
2023-03-14

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

如果我使用 DNS 从不同的应用部署(称为“前端应用”)连接到“后端应用”,是否会将请求负载均衡到每个节点上的每个“后端应用”Pod?

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

共有2个答案

澹台承
2023-03-14

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

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

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

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

施弘壮
2023-03-14

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

 类似资料:
  • 我创建了一个部署,它导致跨2个节点存在4个吊舱。 然后,我通过一个服务公开这些pod,该服务将产生以下集群IP和podendpoint: 如果通过集群IP在内部访问服务,请求将在两个节点和所有pod之间平衡,而不仅仅是在单个节点上的pod之间平衡(例如,像通过节点端口访问一样)。 我知道kubernetes使用IP表来平衡单个节点上跨吊舱的请求,但我找不到任何文档来解释kubernetes如何平衡

  • 我按照此处找到的指南设置了一个 4 节点 Kubernetes 集群:https://www.tecmint.com/install-a-kubernetes-cluster-on-centos-8/ 它有一个主节点和3个工作节点。 我正在运行一个名为“hello world”的部署,它基于bashofmann/rancher演示映像,有20个副本。我还创建了一个名为hello world的nod

  • 我已经在GCP上创建了一个K8s集群,并且部署了一个应用程序。 然后我把它缩放了一下: 如果节点是一样的,那么为什么IP不一样呢?

  • 根据它的文档,citrix-ingress似乎允许这样做,但我们有很多问题让它工作。 有没有什么我们可能错过的方法可以做到这一点?想要确保我们没有错过一些明显的东西。

  • 当初始化Swarm是,我们指定参数--advertise-addr来广播当前节点的IP地址给其他Manager节点。由于manager节点作为一个稳定的基础组件,我们应该给它分配一个固定的静态IP地址,以防止服务器重启造成IP地址改变。 如果Swarm重启,并且所有的manager节点都因为重启而获得一个新的IP地址,其他节点就无法链接到manager节点。Swarm就会出现故障被挂起。 Work

  • 问题内容: 如何确定控制器中给定请求的IP地址?例如(快递): 问题答案: 您的对象中有一个称为的属性,它是一个对象。net.Socket对象具有一个property ,因此您应该可以通过以下调用获取IP: 请参阅http和net的文档 编辑 正如@juand在评论中指出的那样,如果服务器位于代理之后,则获取远程IP的正确方法是