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

Kubernetes 群集IP和节点端口IP地址是否在不同节点之间进行负载平衡?,kubernetes,Kubernetes,我有一个名为“后端应用程序”的应用程序部署,运行在几个不同节点上的pod中。我还有一个服务,它将“后端应用程序”作为我的“前端应用程序”播客公开,供其他集群内部播客访问 如果我使用DNS从名为“前端应用程序”的不同应用程序部署连接到“后端应用程序”,请求是否会负载平衡到每个节点上的每个“后端应用程序”吊舱 听起来NodePort服务只会连接到一个节点,而不会对其他节点的请求进行负载平衡。服务会自动对分配给它们的POD进行负载平衡。看 使用服务创建的集群IP地址是IP地址,它将自动选择运行pod的

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

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


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

服务会自动对分配给它们的POD进行负载平衡。看

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

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


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

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

NodePort
是一种服务类型,但如果需要负载平衡行为,请选择
LoadBalancer
类型。还有一个关于NodePort和LoadBalancer的问题。毕竟,作为官方参考,请参阅:因此,如果我希望我的“前端应用程序”吊舱以负载平衡的方式与“后端应用程序”吊舱通信,我不能只创建一个选择“后端应用程序”的“ClusterIP”服务,然后使用DNS查找随机的“后端应用程序”?ClusterIP不应该在集群外可用。基本上,对于负载平衡行为,选择
LoadBalancer
可以将平衡委托给云提供商的LB。但是,如果要更明确地配置LB,没有什么能阻止您通过
NodePort
服务公开部署:外部LB可以以循环方式(或以任何方式配置)访问
NodePort
s@vahdet感谢您提供的信息。我的问题实际上围绕着内部负载平衡。请注意,我的“后端应用程序”和“前端应用程序”都在同一集群中。我想知道我的“前端应用程序”如何将其请求负载平衡到我的“后端应用程序”。前端和后端部署都在多个节点上运行。我想确保我的前端请求不只是一直在同一个节点中命中同一个pod。谢谢,这是我正在寻找的内容的一部分。如果您连接到一个节点,但该节点上没有运行您想要连接的pod,会发生什么情况?如果节点不能代理运行在其上的pod,那么该节点如何满足请求?每个Kubernetes节点都运行一个名为
kube-proxy
的程序。该应用程序转发(或配置iptables)任何地方运行的pod请求。请阅读链接文档,它确实包含您正在查找的信息,包括有关
kube代理的详细信息
。因此,您可以有一个没有pod的节点在其上运行,但如果集群上运行负载平衡器,它会将其部分代理流量分配给正确的节点和pod?是,但是,不需要这样的负载平衡器。服务本身起着内部负载平衡器的作用。