開發雲控制器管理器

特性狀態: 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)