2

Kubernetes 如何知道它上面运行的是哪个外部云提供商?

Master 中是否运行任何特定服务来确定 Kubernetes 集群是否在 AWS 或 Google Cloud 中运行?

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

4

1 回答 1

1

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

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

kube-apiserver - 这只是确保暴露云 API,例如持久卷

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

我们是否必须在某处配置凭据以便它从那里选择它并创建外部负载均衡器?

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

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

于 2018-07-29T23:31:07.573 回答