開發雲控制器管理器
特性狀態:
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)