代码之家  ›  专栏  ›  技术社区  ›  Trace

澄清入口负载平衡器

  •  4
  • Trace  · 技术社区  · 5 年前

    我不确定负载平衡如何与入口一起工作。
    如果我理解正确,实际发生的事情是这样的:

    enter image description here

    我看不到如何执行负载平衡。
    我画的上述方案有什么问题?
    你能帮我纠正一下吗?

    笔记:
    -以下答案告诉我入口控制器本身是“负载均衡器”类型: Ingress service type
    -我使用善良的clusterip是因为我不想把负载均衡器暴露给外界。以下文章不支持此声明,其中负载平衡器将由服务提供:

    https://medium.com/google-cloud/kubernetes-nodeport-vs-loadbalancer-vs-ingress-when-should-i-use-what-922f010849e0

    enter image description here

    2 回复  |  直到 5 年前
        1
  •  4
  •   Ryan Dawson    5 年前

    这个 ClusterIP 服务本身执行负载平衡。命名可能混淆为 LoadBalancer 服务不是唯一涉及负载平衡的服务- 负载平衡器 实际上意味着“云提供商请创建一个外部负载均衡器并将其指向此服务”。库伯内斯 簇集 服务也 load-balance across Pods in different Nodes using the kube-proxy . 如果您不希望Kubernetes进行负载平衡,那么您必须通过 creating a headless service .

        2
  •  3
  •   Alik Khilazhev    5 年前

    你画的第一个方案似乎是正确的。但我认为你在术语上会感到困惑。尤其是在 ingress ingress-controller .

    Ingress 是K8S中的一种资源(如 Service , Deployment , ReplicaSet 等等)。如果希望将某些服务公开给绑定到某个路径和主机(即myapp.com/api->my api服务)的外部世界,则使用入口。

    工作 入口控制器 处理入口资源的创建/更新/删除,并实现入口所需的所有功能。在发动机罩入口控制器下面是一个简单的展开 LoadBalancer NodePort 服务取决于K8S的部署位置。图像控制器将接收到的请求进一步转发到服务吊舱之一,该吊舱与一些已部署的入口资源中的主机和路径相匹配。