开发云控制器管理器
特性状态:
Kubernetes v1.11 [测试版]
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
- 创建一个 Go 包,其包含满足 cloudprovider.Interface 的实现。
- 使用 Kubernetes 核心中的
main.go
(位于 cloud-controller-manager 中) 作为您的main.go
的模板。如上所述,唯一的区别应该是将要导入的云包。 - 在
main.go
中导入您的云包,确保您的包有一个init
块来运行cloudprovider.RegisterCloudProvider
。
许多云提供商都将其控制器管理器代码发布为开源代码。如果您要从头开始创建新的 cloud-controller-manager,则可以将现有的树外云控制器管理器作为起点。
树内
对于树内云提供商,您可以将树内云控制器管理器作为 守护进程集 在您的集群中运行。有关更多详细信息,请参阅云控制器管理器管理。
上次修改时间:2023 年 1 月 11 日太平洋标准时间上午 11:12:更新 /tasks/administer-cluster 部分中的页面权重 (b1202c78ff)