From 282573aa185149c48ae3f3bfb68711c4d91e4cc8 Mon Sep 17 00:00:00 2001 From: Alan Date: Mon, 18 Feb 2019 16:13:27 +0800 Subject: [PATCH] zh-trans: developing-cloud-controller-manager.md (#12413) * zh-trans: /docs/tasks/administer-cluster/developing-cloud-controller-manager.md zh-trans: /docs/tasks/administer-cluster/developing-cloud-controller-manager.md * Update developing-cloud-controller-manager.md * fix typo: delete useless "**" * Update developing-cloud-controller-manager.md --- .../developing-cloud-controller-manager.md | 2 +- .../developing-cloud-controller-manager.md | 84 +++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 content/zh/docs/tasks/administer-cluster/developing-cloud-controller-manager.md diff --git a/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md b/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md index f533c80869..fb69c38276 100644 --- a/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md +++ b/content/en/docs/tasks/administer-cluster/developing-cloud-controller-manager.md @@ -12,7 +12,7 @@ content_template: templates/concept {{< feature-state for_k8s_version="v1.11" state="beta" >}} In upcoming releases, Cloud Controller Manager will be the preferred way to integrate Kubernetes with any cloud. This will ensure cloud providers -can develop their features independently from the core Kubernetes release cycles.** +can develop their features independently from the core Kubernetes release cycles. {{< feature-state for_k8s_version="1.8" state="alpha" >}} diff --git a/content/zh/docs/tasks/administer-cluster/developing-cloud-controller-manager.md b/content/zh/docs/tasks/administer-cluster/developing-cloud-controller-manager.md new file mode 100644 index 0000000000..09dc35a528 --- /dev/null +++ b/content/zh/docs/tasks/administer-cluster/developing-cloud-controller-manager.md @@ -0,0 +1,84 @@ +--- +reviewers: +- luxas +- thockin +- wlan0 +title: 开发云控制器管理器 +content_template: templates/concept +--- + + + + + +{{% capture overview %}} + +{{< feature-state for_k8s_version="v1.11" state="beta" >}} + +在即将发布的版本中,云控制器管理器将是把 Kubernetes 与任何云集成的首选方式。 这将确保驱动可以独立于核心 Kubernetes 发布周期开发其功能。 + +{{< feature-state for_k8s_version="1.8" state="alpha" >}} + + +在讨论如何构建自己的云控制器管理器之前,了解有关它如何工作的一些背景知识是有帮助的。云控制器管理器是来自 `kube-controller-manager` 的代码,利用 Go 接口允许插入任何云的实现。大多数框架和通用控制器的实现在 core,但只要满足 [云提供者接口](https://github.com/kubernetes/cloud-provider/blob/master/cloud.go#L42-L62),它就会始终执行它所提供的云接口。 + + +为了深入了解实施细节,所有云控制器管理器都将从 Kubernetes 核心导入依赖包,唯一的区别是每个项目都会通过调用 [cloudprovider.RegisterCloudProvider](https://github.com/kubernetes/cloud-provider/blob/master/plugins.go#L56-L66) 来注册自己的驱动,更新可用驱动的全局变量。 + +{{% /capture %}} + + +{{% capture body %}} + + +## 开发 + +### Out of Tree + + +要为您的云构建一个 out-of-tree 云控制器管理器,请按照下列步骤操作: + + +1. 使用满足 [cloudprovider.Interface](https://git.k8s.io/kubernetes/pkg/cloudprovider/cloud.go) 的实现创建一个 go 包。 +2. 使用来自 Kubernetes 核心包的 [cloud-controller-manager 中的 main.go](https://github.com/kubernetes/kubernetes/blob/master/cmd/cloud-controller-manager/controller-manager.go) 作为 main.go 的模板。如上所述,唯一的区别应该是将导入的云包。 +3. 在 `main.go` 中导入你的云包,确保你的包有一个 `init` 块来运行 cloudprovider.RegisterCloudProvider。 + + +用现有的 out-of-tree 云驱动作为例子可能会有所帮助。你可以在这里找到 [清单](/docs/tasks/administer-cluster/running-cloud-controller.md#examples)。 + + +### In Tree + + +对于 in-tree 驱动,您可以将 in-tree 云控制器管理器作为群集中的 [Daemonset](/examples/admin/cloud/ccm-example.yaml) 运行。有关详细信息,请参阅 [运行的云控制器管理器文档](/docs/tasks/administer-cluster/running-cloud-controller.md)。 + +{{% /capture %}}