开发云控制器管理器
功能状态:
Kubernetes v1.11 [beta]
云控制器管理器是 Kubernetes 的 控制平面 组件,它嵌入云特定控制逻辑。云控制器管理器允许您将集群链接到云提供商的 API,并将与该云平台交互的组件与仅与集群交互的组件分开。
通过将 Kubernetes 与底层云基础设施之间的互操作性逻辑解耦,云控制器管理器组件使云提供商能够以与主要 Kubernetes 项目不同的速度发布功能。
背景
由于云提供商的开发和发布速度与 Kubernetes 项目不同,因此将提供商特定的代码抽象到 cloud-controller-manager
二进制文件中,使云供应商能够独立于 Kubernetes 核心代码进行发展。
Kubernetes 项目提供带有 Go 接口的骨架云控制器管理器代码,允许您(或您的云提供商)插入自己的实现。这意味着云提供商可以通过从 Kubernetes 核心导入包来实现云控制器管理器;每个云提供商都将通过调用 cloudprovider.RegisterCloudProvider
来注册自己的代码,以更新可用云提供商的全局变量。
开发
树外
要为您的云构建一个树外云控制器管理器
- 创建一个 Go 包,其中包含满足 cloudprovider.Interface 的实现。
- 使用 Kubernetes 核心的
main.go
在 cloud-controller-manager 中 作为您的main.go
的模板。如上所述,唯一的区别应该是将要导入的云包。 - 在
main.go
中导入您的云包,确保您的包具有init
块以运行cloudprovider.RegisterCloudProvider
.
许多云提供商将他们的控制器管理器代码发布为开源软件。如果您要从头开始创建一个新的云控制器管理器,您可以将现有的树外云控制器管理器作为起点。
树内
对于树内云提供商,您可以将树内云控制器管理器作为您的集群中的 DaemonSet 运行。有关更多详细信息,请参阅 云控制器管理器管理。
上次修改时间:2023 年 1 月 11 日下午 11:12 PST: 在 /tasks/administer-cluster 部分更新页面权重 (b1202c78ff)