Kubernetes云控制器开发

2023-12-14 51

云控制器管理器(Cloud Controller Manager)是 Kubernetes 控制平面云控制器管理器(Cloud Controller Manager)是 Kubernetes 控制平面组件之一,它嵌入了特定于云平台的控制逻辑。通过使用云控制器管理器,可以将集群连接到云提供商的 API,并将与该云平台交互的组件与与集群交互的组件分离开来。这样,就可以更轻松地管理和维护 Kubernetes 集群,同时充分利用云平台的功能和优势。

通过分离 Kubernetes 和底层云基础设置之间的互操作性逻辑, cloud-controller-manager 组件使云提供商能够以不同于 Kubernetes 主项目的步调发布新特征。

一、背景

由于云驱动的开发和发布与 Kubernetes 项目本身步调不同,将特定于云环境的代码抽象到 cloud-controller-manager 二进制组件有助于云厂商独立于 Kubernetes 核心代码推进其驱动开发。

Kubernetes 项目提供 cloud-controller-manager 的框架代码,其中包含 Go 语言的接口, 便于(或者云驱动提供者)接驳自己的实现。这意味着每个云驱动可以通过从 Kubernetes 核心代码导入软件包来实现一个 cloud-controller-manager; 每个云驱动会通过调用 cloudprovider.RegisterCloudProvider 接口来注册其自身实现代码, 从而更新一个用来记录可用云驱动的全局变量。

二、开发

1、Out of Tree

要为云环境构建一个树外(Out-of-Tree)云控制器管理器:

(1)使用满足 cloudprovider.Interface 接口的实现来创建一个 Go 语言包。

(2)使用来自 Kubernetes 核心代码库的 cloud-controller-manager 中的 main.go 作为 main.go 的模板。如上所述,唯一的区别应该是将导入的云包不同。

(3)在 main.go 中导入云包,确保包有一个 init 块来运行 cloudprovider.RegisterCloudProvider。

很多云驱动都将其控制器管理器代码以开源代码的形式公开。 如果在开发一个新的 cloud-controller-manager,可以选择某个树外(Out-of-Tree) 云控制器管理器作为出发点。

2、In Tree

对于树内(In-Tree)驱动,可以将树内云控制器管理器作为集群中的 DaemonSet 来运行。 有关详细信息,请参阅《Kubernetes云管理控制器》。

  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。