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