diff --git a/content/zh-cn/docs/tasks/administer-cluster/running-cloud-controller.md b/content/zh-cn/docs/tasks/administer-cluster/running-cloud-controller.md index 8ce31e479e..f86f77821e 100644 --- a/content/zh-cn/docs/tasks/administer-cluster/running-cloud-controller.md +++ b/content/zh-cn/docs/tasks/administer-cluster/running-cloud-controller.md @@ -18,14 +18,23 @@ weight: 110 {{< feature-state state="beta" for_k8s_version="v1.11" >}} 由于云驱动的开发和发布的步调与 Kubernetes 项目不同,将服务提供商专用代码抽象到 `{{< glossary_tooltip text="cloud-controller-manager" term_id="cloud-controller-manager" >}}` 二进制中有助于云服务厂商在 Kubernetes 核心代码之外独立进行开发。 `cloud-controller-manager` 可以被链接到任何满足 [cloudprovider.Interface](https://github.com/kubernetes/cloud-provider/blob/master/cloud.go) @@ -42,11 +51,16 @@ The `cloud-controller-manager` can be linked to any cloud provider that satisfie ### Requirements -Every cloud has their own set of requirements for running their own cloud provider integration, it should not be too different from the requirements when running `kube-controller-manager`. As a general rule of thumb you'll need: +Every cloud has their own set of requirements for running their own cloud provider +integration, it should not be too different from the requirements when running +`kube-controller-manager`. As a general rule of thumb you'll need: -* cloud authentication/authorization: your cloud may require a token or IAM rules to allow access to their APIs -* kubernetes authentication/authorization: cloud-controller-manager may need RBAC rules set to speak to the kubernetes apiserver -* high availability: like kube-controller-manager, you may want a high available setup for cloud controller manager using leader election (on by default). +* cloud authentication/authorization: your cloud may require a token or IAM rules + to allow access to their APIs +* kubernetes authentication/authorization: cloud-controller-manager may need RBAC + rules set to speak to the kubernetes apiserver +* high availability: like kube-controller-manager, you may want a high available + setup for cloud controller manager using leader election (on by default). --> ## 管理 @@ -69,8 +83,12 @@ Successfully running cloud-controller-manager requires some changes to your clus 你需要对集群配置做适当的修改以成功地运行云管理控制器: * 一定不要为 `kube-apiserver` 和 `kube-controller-manager` 指定 `--cloud-provider` 标志。 这将保证它们不会运行任何云服务专用循环逻辑,这将会由云管理控制器运行。未来这个标记将被废弃并去除。 @@ -78,12 +96,20 @@ Successfully running cloud-controller-manager requires some changes to your clus 这是为了保证让 kubelet 知道在执行任何任务前,它必须被云管理控制器初始化。 请记住,设置集群使用云管理控制器将用多种方式更改集群行为: * 指定了 `--cloud-provider=external` 的 kubelet 将被添加一个 `node.cloudprovider.kubernetes.io/uninitialized` 的污点,导致其在初始化过程中不可调度(`NoSchedule`)。 @@ -93,7 +119,12 @@ Keep in mind that setting up your cluster to use cloud controller manager will c (高端 CPU、GPU 支持、内存较大、临时实例等)。 * 集群中节点的云服务信息将不再能够从本地元数据中获取,取而代之的是所有获取节点信息的 API 调用都将通过云管理控制器。这意味着你可以通过限制到 kubelet 云服务 API 的访问来提升安全性。 @@ -103,8 +134,10 @@ Keep in mind that setting up your cluster to use cloud controller manager will c @@ -118,9 +151,12 @@ Cloud controller manager can implement: ## 示例 @@ -135,7 +171,8 @@ For cloud controller managers not in Kubernetes core, you can find the respectiv * [Rancher](https://github.com/rancher/rancher-cloud-controller-manager) 对于已经存在于 Kubernetes 内核中的提供商,你可以在集群中将 in-tree 云管理控制器作为守护进程运行。请使用如下指南: @@ -144,7 +181,9 @@ For providers already in Kubernetes core, you can run the in-tree cloud controll ## 限制 @@ -153,25 +192,44 @@ Running cloud controller manager comes with a few possible limitations. Although ### 对 Volume 的支持 -云管理控制器未实现 `kube-controller-manager` 中的任何 volume 控制器,因为和 volume 的集成还需要与 kubelet 协作。由于我们引入了 CSI (容器存储接口,container storage interface) 并对弹性 volume 插件添加了更强大的支持,云管理控制器将添加必要的支持,以使云服务同 volume 更好的集成。请在 [这里](https://github.com/kubernetes/features/issues/178) 了解更多关于 out-of-tree CSI volume 插件的信息。 +云管理控制器未实现 `kube-controller-manager` 中的任何 volume 控制器, +因为和 volume 的集成还需要与 kubelet 协作。由于我们引入了 CSI (容器存储接口, +container storage interface) 并对弹性 volume 插件添加了更强大的支持, +云管理控制器将添加必要的支持,以使云服务同 volume 更好的集成。 +请在[这里](https://github.com/kubernetes/features/issues/178)了解更多关于 +out-of-tree CSI volume 插件的信息。 ### 可扩展性 -在以前为云服务提供商提供的架构中,我们依赖 kubelet 的本地元数据服务来获取关于它本身的节点信息。通过这个新的架构,现在我们完全依赖云管理控制器来获取所有节点的信息。对于非常大的集群,你需要考虑可能的瓶颈,例如资源需求和 API 速率限制。 +通过云管理控制器查询你的云提供商的 API 以检索所有节点的信息。 +对于非常大的集群,请考虑可能的瓶颈,例如资源需求和 API 速率限制。 ### 鸡和蛋的问题 @@ -181,7 +239,12 @@ The goal of the cloud controller manager project is to decouple development of c 在该请求没有完成的情况下云管理控制器不能返回那些信息。 @@ -195,7 +258,8 @@ TLS 证书以和 API 服务器通信。 ## {{% heading "whatsnext" %}} 要构建和开发你自己的云管理控制器,请阅读 [开发云管理控制器](/zh-cn/docs/tasks/administer-cluster/developing-cloud-controller-manager/)