Kubernetes如何知道其上正在运行的外部云提供商?
Master上是否运行任何特定服务来确定Kubernetes集群是在AWS还是在Google Cloud中运行?
即使能够找到它是AWS还是Google,从哪里获取凭据来创建外部AWS / Google负载均衡器?我们是否必须在某个地方配置凭据,以便从那里选择凭据并创建外部负载平衡器?
答案 0 :(得分:1)
在安装Kubernetes云提供程序标志时,必须在各种组件上指定--cloud-provider=aws
标志。
kube-controller-manager -这是在发出云特定请求时与云API交互的组件。它运行“循环”,以确保完成任何云提供商的请求。因此,当您请求Type = LoadBalancer的服务时,控制器管理器将检查并确保已配置了该
kube-apiserver -这只是确保云API公开,就像持久卷一样
kubelet -确保在节点上配置工作负载时。对于持久性存储EBS卷之类的情况尤其如此。
我们是否必须在某个地方配置凭据,以便从那里选择凭据并创建外部负载平衡器?
以上所有组件均应能够查询所需的云提供商API。通常,这使用IAM roles完成,以确保实际节点本身具有权限。如果您查看kops文档,则会看到分配给主节点和工作节点的IAM角色的示例,这些角色授予这些节点查询和进行API调用的权限。
应注意,此模型即将更改,以将所有云提供程序逻辑移至专用的cloud-controller-manager,在安装群集时必须对其进行预先配置。