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

Master中是否有任何特定服务在运行,以找出Kubernetes集群是在AWS还是在Google Cloud中运行?

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

最佳答案

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

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

kube-apiserver -只需确保公开了云API,例如持久卷

kubelet -确保在节点上配置工作负载时使用。诸如持久性存储EBS卷之类的情况尤其如此。



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

应当注意的是,此模型即将更改,以将所有云提供程序逻辑移动到专用的cloud-controller-manager中,在安装集群时必须对其进行预先配置。

关于amazon-web-services - “type: LoadBalancer”如何在Kubernetes中创建外部负载均衡器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51584232/

10-15 03:44