开发云控制器管理器

特性状态: Kubernetes v1.11 [beta]

云控制器管理器(cloud-controller-manager)是 Kubernetes 控制平面的一个组件,它嵌入了特定于云的控制逻辑。云控制器管理器让你能将你的集群链接到云提供商的 API,并将与该云平台交互的组件从仅与你的集群交互的组件中分离出来。

通过解耦 Kubernetes 与底层云基础设施之间的互操作性逻辑,云控制器管理器组件使云提供商能够以与 Kubernetes 主项目不同的速度发布特性。

背景

由于云提供商的开发和发布速度与 Kubernetes 项目不同,将特定于提供商的代码抽象到 cloud-controller-manager 二进制文件允许云厂商独立于 Kubernetes 核心代码进行演进。

Kubernetes 项目提供了带有 Go 接口的云控制器管理器骨架代码,以允许你(或你的云提供商)插入你自己的实现。这意味着云提供商可以通过导入 Kubernetes 核心包来实现云控制器管理器;每个云提供商都将通过调用 cloudprovider.RegisterCloudProvider 来注册自己的代码,以更新可用云提供商的全局变量。

开发

树外

为你的云构建一个树外云控制器管理器

  1. 创建一个 Go 包,其中包含满足 cloudprovider.Interface 的实现。
  2. 使用 Kubernetes 核心的 cloud-controller-manager 中的 main.go 作为你自己的 main.go 的模板。如上所述,唯一的区别应该是要导入的云包。
  3. main.go 中导入你的云包,确保你的包有一个 init 块来运行 cloudprovider.RegisterCloudProvider

许多云提供商将他们的控制器管理器代码作为开源发布。如果你正在从头开始创建一个新的云控制器管理器,你可以将一个现有的树外云控制器管理器作为你的起点。

树内

对于树内云提供商,你可以在你的集群中将树内云控制器管理器作为 DaemonSet 运行。有关更多详细信息,请参阅 云控制器管理器管理

上次修改时间:2023 年 1 月 11 日上午 11:12 PST:更新 /tasks/administer-cluster 部分的页面权重 (b1202c78ff)