云管理控制器(Cloud Controller Manager)是 1.8 版本中的一个 alpha 特性。在以后的版本中,它将成为 Kubernetes 与任何云服务进行集成的首选方式。这将保证云服务提供商(cloud provider)能够在 Kubernetes 核心发布周期外独立开发他们的特性
在介绍如何构建您自己的云管理控制器之前,了解一下它的底层工作原理是很有帮助的。云管理控制器是从 kube-controller-manager
实现的 Go 语言接口代码,用于实现任何云服务的接入。绝大部分脚手架和通用控制器代码将在内核中实现,但只要实现了 云服务提供商接口(cloud provider interface),它就将执行所提供的云服务接口(cloud interface)。
如果稍微深入了解一下实现细节,您会发现所有云管理控制器都将从 Kubernetes 内核导入包。唯一的区别是每个项目都会通过调用 cloudprovider.RegisterCloudProvier 注册自己的 cloud provider,它是一个用于更新可用 cloud provider 的全局变量。
要为您的云服务构建一个 out-of-tree 的 cloud-controller-manager,请执行这些步骤:
main.go
中导入您的云服务包,确保包内有用于运行 cloudprovider.RegisterCloudProvider 的 init
块。使用现有的 out-of-tree cloud provider 可能会有所帮助。您可以在 这里 找到列表。
对于 in-tree cloud provider,您可以在集群中将 in-tree 云管理控制器作为 Daemonset 运行。更多细节请查看 运行云管理控制器文档。
Create an Issue Edit this Page