当前位置: 首页 > 知识库问答 >
问题:

“类型:LoadBalancer”如何在Kubernetes中创建外部负载平衡器?

耿珂
2023-03-14

Kubernetes如何知道其上运行的外部云提供商?

是否有任何特定的服务在Master中运行,以确定Kubernetes集群是否在AWS或Google云中运行?

即使它能够找出它是AWS或Google,它从哪里获取凭据来创建外部AWS/Google负载均衡器?我们是否必须在某个地方配置凭据,以便它从那里选择它并创建外部负载均衡器?

共有1个答案

司空朝
2023-03-14

安装Kubernetes云提供程序标志时,必须在各种组件上指定“cloud provider=aws”标志。

库贝-Controler-Manager-这是在发出特定于云的请求时与云API交互的组件。它运行“循环”以确保任何云提供商请求都已完成。因此,当您请求Type=LoadBalancer的服务时,控制器管理器会检查并确保已配置

kube apiserver-这只是确保云API公开,就像持久卷一样

kubelet—确保在节点上配置工作负载时做到这一点。对于持久存储EBS卷之类的对象,情况尤其如此。

我们是否必须在某个地方配置凭据,以便它从那里拾取凭据并创建外部负载平衡器?

以上所有组件都应该能够查询所需的云提供商API。通常,这是使用IAM角色来完成的,IAM角色确保实际节点本身具有权限。如果查看kops文档,您将看到分配给master和worker的IAM角色的示例,以授予这些节点查询和进行API调用的权限。

应该注意的是,这种模式很快就会发生变化,将所有云提供商逻辑移动到一个专用的云控制器管理器中,在安装集群时必须预先配置该管理器。

 类似资料:
  • 我必须手动在MS Azure中创建Kubernetes群集,而不是使用AKS。因此: > 我在一个可用性集中创建了2个VM:一个用于k8s master,第二个用于k8s节点。 我创建了外部负载均衡器并将2个VM添加到后端池。 我使用kubes祈祷创建了k8s集群。 我创建了部署和负载均衡器服务: 但LoadBalancer服务外部IP始终处于挂起状态: 此外,telnet azure\u loa

  • 在Kubernetes中创建负载平衡器类型的服务时,它是创建一个全新的外部负载平衡器,还是只为负载平衡器类型的第一个服务创建一个负载平衡器,并将该负载平衡器重新用于负载平衡器类型的所有后续服务? 这个问题特别重要,因为为每个服务构建一个单独的负载平衡器对我来说成本太高。 如果它特定于云提供商,我使用Azure,但我很想知道其他云提供商是否不同。

  • 我正在DigitalOcean上使用CoreOs和库伯内特斯构建一个容器集群,我已经看到,为了向世界公开Pod,您必须使用Type: LoadBalancer创建一个服务。我认为这是最佳解决方案,因此您不需要在nginx或haagent等kubernetes之外添加外部负载均衡器。我想知道是否可以使用DO的浮动IP创建它。

  • 我正在使用入口从库伯内特斯集群外部公开我的服务,因此我不需要库伯内特斯来配置负载均衡器。因此,我创建了一个ClusterIP服务: 这很有效-我有一个单独的入口和部署设置,我可以很好地访问该应用程序。 然而,Kubernetes坚持无论如何都要尝试创建负载平衡器。因为它在我的AWS帐户中没有这样做的权限,所以我创建的每个服务都会记录如下错误: 我假设它试图描述BeloadBalancers,因为它

  • 我安装了一个kubernetes集群。我想为我的一个微服务使用外部数据库(在我的集群之外),但这个外部数据库被设置为集群,没有自己的负载均衡器。 有没有办法创建一个内部负载平衡器服务,让kubernetes始终将微服务定向到正在运行的实例? 我看到您可以设置loadbalancer类型的服务,我如何使用它?我尝试创建它,但我看到loadbalancer服务是用NodePort创建的。它可以在没有节

  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv