Skip to content

Cluster API Provider MAAS — 專案簡介

CAPMAAS(Cluster API Provider for MAAS)是 Spectro Cloud 維護的 Cluster API Infrastructure Provider,負責讓 Cluster API(CAPI)框架能夠在 Canonical MAAS(Metal-as-a-Service)裸金屬管理平台上自動佈建 Kubernetes 叢集。

什麼是 MAAS?

MAAS(Metal as a Service) 是 Canonical 開發的裸金屬管理平台,提供類似雲端的機器生命週期管理,包括:自動探索(PXE/IPMI)、映像檔部署、網路配置,以及完整的 REST API。CAPMAAS 透過此 API 來驅動 Kubernetes 節點的佈建與回收。

核心定位

CAPMAAS 在整體 Cluster API 生態系中扮演 Infrastructure Provider 的角色:

層級元件職責
CAPI CoreCluster / Machine宣告式叢集設計,協調生命週期
Bootstrap ProviderKubeadmControlPlane / KubeadmConfigTemplate產生節點初始化腳本(user-data)
Infrastructure ProviderMaasCluster / MaasMachine對接 MAAS API,實際申請/部署裸金屬

主要特性

  • 裸金屬佈建:透過 MAAS API 申請(Allocate)符合條件的裸金屬機器,並以 Custom image 部署 Kubernetes 節點映像檔
  • Resource Pool 篩選:支援依 resourcePool 欄位限定機器資源池
  • Tag 篩選:支援依 tags 欄位選擇帶有特定標籤的機器
  • DNS 負載平衡:利用 MAAS DNS Resource 作為 API Server 的軟性負載平衡(不依賴外部 LB)
  • In-Memory 部署:支援將機器部署於記憶體(RAM),適合短暫或測試工作負載
  • Failure Domain:支援透過 MAAS Zone(可用區)做故障隔離
  • Webhook 驗證:MaasCluster、MaasMachine、MaasMachineTemplate 均有 admission webhook

文件導覽

頁面內容摘要
系統架構CAPI 框架整合、Controller 設計、Scope 模式
核心功能機器佈建流程、DNS 管理、In-Memory 部署
控制器與 APICRD 欄位說明、Condition 定義、Controller 邏輯
外部整合MAAS API 用法、環境變數設定、clusterctl 部署
學習路徑從零到佈建完整叢集的學習指引

版本相容性

CAPMAAS 版本CAPI 版本API Group
v0.7.0+v1beta1infrastructure.cluster.x-k8s.io/v1beta1

In-Memory 部署的 MAAS 版本限制

使用 deployInMemory: true 功能需要以下 MAAS 版本之一:≥ 3.5.10≥ 3.6.3≥ 3.7.1,且機器需配備至少 16 GB RAM

相關章節

基於 Apache 2.0 授權