开发云控制器管理器

功能状态: Kubernetes v1.11 [beta]

云控制器管理器是 Kubernetes 的 控制平面 组件,它嵌入云特定控制逻辑。云控制器管理器允许您将集群链接到云提供商的 API,并将与该云平台交互的组件与仅与集群交互的组件分开。

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

背景

由于云提供商的开发和发布速度与 Kubernetes 项目不同,因此将提供商特定的代码抽象到 cloud-controller-manager 二进制文件中,使云供应商能够独立于 Kubernetes 核心代码进行发展。

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

开发

树外

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

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

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

树内

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

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