【问题标题】:two Loadbalancing in kubernetesKubernetes 中的两个负载均衡
【发布时间】:2019-04-07 18:18:01
【问题描述】:

如下图所示,我发现在 kubernetes 中我们有两个 loadbalancer。一种是节点间的负载均衡,另一种是pod间的负载均衡。

如果我同时使用它们,我有两个 loadbalancer

假设某个用户想要连接到10.32.0.5,kubernetes 将其请求发送到node1(10.0.0.1),然后将请求发送到 nod3(10.0.0.3) 中的 pod (10.32.0.5),但它没有用,因为最好的路由是发送请求 @ 987654327@直接。

为什么 NodePort 不足以进行负载均衡?

为什么 NodePort 不是 LoadBalancer?(它在不同节点的 Pod 之间进行 LoadBalance,但为什么我们需要另一个负载均衡器?)

注意:我知道如果我使用 NodePort 并且节点出现故障会产生问题,但我可以说我可以使用 keepalived。问题是

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

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

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

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

    现在取决于您如何访问服务的设置:

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

    详情请见docs

    【讨论】:

    • 为什么我们使用其中的两个?
    • 为什么我们不能使用 NodePort 作为负载均衡器?我在某处读到 NodePort 不是负载均衡器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 2022-10-23
    • 2019-07-11
    • 2019-04-10
    • 2021-01-27
    相关资源
    最近更新 更多