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