kubernetes中的两种负载平衡

kubernetes中的两种负载平衡,kubernetes,Kubernetes,如下图所示,我发现在kubernetes中有两个负载平衡器。其中一个是节点之间的负载平衡,另一个是吊舱之间的负载平衡 如果我同时使用它们,我有两个负载平衡器 想象一下,一些用户想要连接到10.32.0.5kubernetes将其请求发送到node1(10.0.0.1),然后将请求发送到Node3(10.0.0.3)中的pod(10.32.0.5),但这是无效的,因为最好的路径是直接发送请求Node3(10.0.0.3) 为什么节点端口不足以进行负载平衡 为什么NodePort不是负载均衡器?(它

如下图所示,我发现在kubernetes中有两个负载平衡器。其中一个是节点之间的负载平衡,另一个是吊舱之间的负载平衡

如果我同时使用它们,我有两个负载平衡器

想象一下,一些用户想要连接到
10.32.0.5
kubernetes将其请求发送到
node1(10.0.0.1)
,然后将请求发送到
Node3(10.0.0.3)
中的pod
(10.32.0.5)
,但这是无效的,因为最好的路径是直接发送请求
Node3(10.0.0.3)

为什么节点端口不足以进行负载平衡

为什么NodePort不是负载均衡器?(它在不同节点中的POD之间实现负载平衡,但为什么我们需要另一个负载均衡器?)

注意:我知道,如果我使用NodePort,而节点发生故障,就会产生问题,但我可以说我可以使用KeepAlive。问题是

为什么我们需要在节点之间进行负载平衡?keepalived将所有请求吸引到一个IP。
为什么我们有两个负载平衡器?

您是否有两个负载平衡器取决于您的设置

在您的示例中,您有3个nginx pod和1个nginx服务来访问这些pod。该服务构建了一个抽象层,因此您不必知道有多少个pod以及它们有哪些IP地址。您只需与服务对话,它就会将负载平衡转移到其中一个吊舱()

现在取决于您的设置以及访问服务的方式:

  • 您可能希望通过NodePort发布服务。然后您可以直接访问节点上的服务
  • 您也可以通过LoadBalancer发布它。这为您提供了另一个抽象级别,调用者不需要太了解集群的实际设置

有关详细信息,请参阅。

为什么我们使用其中两个?为什么我们不能将NodePort用作负载平衡器?我在某个地方读到NodePort不是负载平衡器