Kubernetes 中的负载平衡:入口控制器概念

问题描述 投票:0回答:1

我是 Kubernetes 的新手,打算研究和了解 Kubernetes 中各种形式的负载均衡。我看到很多提到 Ingress 控制器的文章,并且一直在尝试自己使用一个。

我认为我可以做的是安装入口控制器(nginx/haproxy)并测试内部负载平衡。根据我的研究,人们似乎只使用入口控制器连接到外部负载均衡器(由云提供商,即 aws 或 gke)。我还读到,当使用此外部负载均衡器进行负载均衡时,它具有“两层”负载均衡,即由外部负载均衡器完成的集群节点的负载均衡,以及服务的 Pod 之间的负载均衡。将由入口完成,这让我认为我可以仅使用入口控制器来测试内部负载平衡。

我想知道是否可以这样做,或者我是否没有正确理解这些概念以及它们如何在现实中应用。

作为参考,我有一个在 vagrant 节点上运行的集群,并尝试安装和配置入口控制器,但没有成功,因为没有为入口分配外部 IP。 我可以提供有关我已实施的内容的详细信息,但我真的认为我现在已经遇到了概念上的障碍。

kubernetes kubernetes-ingress ingress-controller
1个回答
0
投票

我假设您正在使用 Kubernetes the Hard Way 设置,并且已经使用 kubeadm 等工具设置了控制平面主节点和工作节点。需要注意的是,Kubernetes the Hard Way 会自动部署一个负载均衡节点,用于集群内的内部负载均衡。

鉴于此设置,您确实可以利用 Ingress 控制器进行内部负载平衡。虽然入口控制器通常与外部负载平衡相关,但它们也能够处理集群内的内部流量路由。

您提到的“两层”概念涉及将流量引导到节点的外部负载均衡器和管理内部服务 Pod 之间流量的入口控制器。

LB 节点与入口控制器:

负载均衡节点:处理集群内的内部流量,充当第4层负载均衡器。

入口控制器:管理对服务的外部访问,还可以处理内部流量路由,充当第7层负载均衡器。

要使用基于 Vagrant 的 Kubernetes 中的 Ingress 控制器来测试内部负载平衡,硬方法设置:

  1. 确认您的控制平面主节点、工作节点和负载 平衡节点已运行。
  2. 安装并配置 Ingress 控制器,例如 NginxHAProxy
  3. 定义入口资源以指定内部流量应如何 路由到服务和 Pod。
  4. Ingress 控制器使用这些 Ingress 资源来配置 内部负载平衡规则。
  5. 内部使用 ClusterIP 或负载均衡节点的 IP 在此设置中可能无法分配作为外部 IP 的通信。

您可以随时参考 k8s 文档,其中包含与 ingress 控制器 和 kubernetes 一般相关的所有信息。

© www.soinside.com 2019 - 2024. All rights reserved.