Kubernetes Cluster API(CAPI)是 SIG Cluster Lifecycle 发起的 Kubernetes 子项目,通过声明式 API 与工具简化和自动化多 Kubernetes 集群的创建、扩缩、升级与销毁。它面向多云与本地环境,用可替换的基础设施、引导和控制平面 Provider 实现一致可重复的集群部署。
主要能力:核心资源包括 Cluster、Machine、MachineSet、MachineDeployment 和 MachineHealthCheck,可声明式创建集群、扩缩工作节点、升级 Kubernetes 版本并对不健康节点自动修复;ClusterClass 支持用拓扑驱动控制平面与 MachineDeployment 的 rolloutAfter;支持用 clusterctl move 将集群迁移到新管理集群,并集成 GitOps 工作流。
使用方式:安装 clusterctl 后初始化管理集群,再生成并应用工作负载集群清单。例如: curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v1.12.0/clusterctl-linux-amd64 -o clusterctl chmod +x clusterctl sudo mv clusterctl /usr/local/bin/ clusterctl init --infrastructure docker clusterctl generate cluster my-cluster --kubernetes-version v1.32.0 --control-plane-machine-count 1 --worker-machine-count 3 | kubectl apply -f - clusterctl get kubeconfig my-cluster > my-cluster.kubeconfig kubectl delete cluster my-cluster
适用场景:跨多个基础设施 Provider 的集群供给、集群生命周期管理、GitOps 集群运维、自建基础设施 Provider 等。
限制与注意事项:不管理 CAPI 之外的集群,不提供 Kubernetes 核心 API,不管理单集群跨多 Provider,也不配置创建/升级后的机器。禁止在没有备份时直接修改管理集群,禁止直接删除 Machine 对象(应通过 MachineDeployment 扩缩),禁止混用不兼容的 Provider 版本,升级须先控制平面后工作节点。v1beta1 API 计划在 CAPI v1.16 不再服务(应迁移到 v1beta2),Docker* 资源将在 v1.15 移除(迁移到 Dev* 资源)。
随附 Go 脚本位于 scripts/,包括 validate-manifests、migration-checker、check-cluster-health、export-cluster-state、audit-security、lint-cluster-templates 等;assets/ 提供集群模板、Provider 配置、运维清单、GitOps 与监控示例。具体收费、价格与平台支持暂未提供。