開發雲端控制器管理員
功能狀態:
Kubernetes v1.11 [beta]
cloud-controller-manager 是 Kubernetes 控制平面 組件,其中嵌入了雲端特定的控制邏輯。雲端控制器管理員可讓您將叢集連結到雲端供應商的 API,並將與該雲端平台互動的組件與僅與叢集互動的組件分開。
透過將 Kubernetes 與底層雲端基礎架構之間的可互通性邏輯分離,cloud-controller-manager 組件讓雲端供應商能夠以不同於主要 Kubernetes 專案的步調發佈功能。
背景
由於雲端供應商以不同於 Kubernetes 專案的步調進行開發和發佈,因此將供應商特定的程式碼抽象化為 cloud-controller-manager
二進位檔,可讓雲端廠商獨立於核心 Kubernetes 程式碼進行演進。
Kubernetes 專案提供骨架 cloud-controller-manager 程式碼,其中包含 Go 介面,可讓您 (或您的雲端供應商) 外掛您自己的實作。這表示雲端供應商可以透過匯入 Kubernetes 核心的套件來實作 cloud-controller-manager;每個雲端供應商都會透過呼叫 cloudprovider.RegisterCloudProvider
來註冊自己的程式碼,以更新可用雲端供應商的全域變數。
開發
樹狀結構外
若要為您的雲端建置樹狀結構外的雲端控制器管理員
- 建立一個 Go 套件,其中包含滿足 cloudprovider.Interface 的實作。
- 使用 Kubernetes 核心中
cloud-controller-manager
中的main.go
作為您的main.go
的範本。如上所述,唯一的差異應該是將匯入的雲端套件。 - 在
main.go
中匯入您的雲端套件,確保您的套件具有init
區塊以執行cloudprovider.RegisterCloudProvider
。
許多雲端供應商以開放原始碼形式發佈其控制器管理員程式碼。如果您要從頭開始建立新的 cloud-controller-manager,您可以將現有的樹狀結構外雲端控制器管理員作為起點。
樹狀結構內
對於樹狀結構內雲端供應商,您可以將樹狀結構內雲端控制器管理員作為叢集中的 DaemonSet 執行。如需更多詳細資訊,請參閱雲端控制器管理員管理。
上次修改時間:太平洋標準時間 2023 年 1 月 11 日上午 11:12:更新 /tasks/administer-cluster 區段中的頁面權重 (b1202c78ff)