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

Kubernetes服务集群IP,如何在不同节点之间平衡内部负载

卫焕
2023-03-14

我创建了一个部署,它导致跨2个节点存在4个吊舱。

然后,我通过一个服务公开这些pod,该服务将产生以下集群IP和podendpoint:

Name:                     s-flask
......
IP:                       10.110.201.8
Port:                     <unset>  9080/TCP
TargetPort:               5000/TCP
NodePort:                 <unset>  30817/TCP
Endpoints:                
192.168.251.131:5000,192.168.251.132:5000,192.168.251.134:5000 + 1 more...

如果通过集群IP在内部访问服务,请求将在两个节点和所有pod之间平衡,而不仅仅是在单个节点上的pod之间平衡(例如,像通过节点端口访问一样)。

我知道kubernetes使用IP表来平衡单个节点上跨吊舱的请求,但我找不到任何文档来解释kubernetes如何平衡跨多个节点的内部服务请求(我们不使用负载均衡器或入口来实现内部服务负载平衡)。

集群IP本身是虚拟的,我认为这可以工作的唯一方法是,如果集群IP是循环映射到服务endpointIP地址,客户端将不得不查找集群IP/服务并选择endpointIP?

共有1个答案

海嘉赐
2023-03-14

您所需要的一切都在本文档的第二段“虚拟IPs和服务代理”中解释:https://kubernetes.io/docs/concepts/services-networking/service/#definition-a-service

简而言之:目前,根据代理模式,对于ClusterIP来说,它只是循环/随机。它是由kube-proxy完成的,它运行在每个节点上,代理UDP和TCP并提供负载平衡。

最好把kubernetes看作一个整体,而不是具体的节点。抽象在这里起作用。

希望它能回答你的问题。

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

  • 我有一个名为“backend-app”的应用程序部署在几个不同节点上的pod中运行。我还有一个服务,它将“backend-app”公开为其他集群内部pod作为我的“前端应用程序”pod访问。 如果我使用 DNS 从不同的应用部署(称为“前端应用”)连接到“后端应用”,是否会将请求负载均衡到每个节点上的每个“后端应用”Pod? 听起来NodePort服务只会连接到一个节点,而不会对我对其他节点的请求

  • 我安装了一个kubernetes集群。我想为我的一个微服务使用外部数据库(在我的集群之外),但这个外部数据库被设置为集群,没有自己的负载均衡器。 有没有办法创建一个内部负载平衡器服务,让kubernetes始终将微服务定向到正在运行的实例? 我看到您可以设置loadbalancer类型的服务,我如何使用它?我尝试创建它,但我看到loadbalancer服务是用NodePort创建的。它可以在没有节

  • 我必须手动在MS Azure中创建Kubernetes群集,而不是使用AKS。因此: > 我在一个可用性集中创建了2个VM:一个用于k8s master,第二个用于k8s节点。 我创建了外部负载均衡器并将2个VM添加到后端池。 我使用kubes祈祷创建了k8s集群。 我创建了部署和负载均衡器服务: 但LoadBalancer服务外部IP始终处于挂起状态: 此外,telnet azure\u loa

  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv

  • 介绍: 在AWS上,负载均衡器很昂贵(20美元/月的使用量),所以我正在寻找一种方法来实现k8s节点之间的灵活负载均衡,而无需支付这笔费用。负载没那么大,所以我不需要AWS负载均衡器的可扩展性。我只需要服务是HA。我可以以3.5美元/月的价格获得一个小型EC2实例,它可以轻松处理当前的流量,所以我现在正在追逐这个选择。 当前设置 目前,我已经设置了一个常规的独立Ngin x实例(k8s之外),在我