架构
目录
概述
我们的不可变基础设施平台基于 Cluster API (CAPI) 框架构建,提供了一种声明式、Kubernetes 原生的集群生命周期管理方法。
架构组件
核心 Cluster API 框架
该平台围绕 Cluster API 框架构建,提供:
- 声明式 API:用于集群管理的 Kubernetes 原生资源
- Provider 接口:针对不同基础设施提供商的标准化接口
- 生命周期管理:自动化集群的配置、扩展和升级
- GitOps 集成:原生支持 GitOps 工作流
Provider 架构
我们的平台集成了三个关键的 Cluster API provider:
1. 引导 Provider - Kubeadm
Cluster API Bootstrap Provider Kubeadm 负责 Kubernetes 节点的初始化和配置:
- 节点初始化:自动将裸机转变为 Kubernetes 节点的过程
- 配置管理:管理 kubelet 配置、证书和引导令牌
- 加入流程:处理工作节点加入集群的过程
- 证书管理:自动化证书的生成和轮换
2. 控制平面 Provider - Kubeadm
Cluster API Control Plane Provider Kubeadm 管理 Kubernetes 控制平面:
- 控制平面部署:部署和管理 Kubernetes API 服务器、etcd 及控制平面组件
- 高可用性:支持多节点控制平面部署及负载均衡
- 升级管理:处理控制平面组件的滚动升级
- 健康监控:监控控制平面健康状况并执行恢复操作
3. 基础设施 Provider
所选的 基础设施 Provider(如我们的自定义 Provider DCS)管理目标平台的底层基础设施:
- 计算资源配置:在目标平台上创建和管理虚拟机或实例
- 网络配置:搭建网络基础设施
- 资源管理:管理计算、存储和网络资源
- Provider 集成:与 Provider 的 API 和服务集成
Cluster API 架构

关键特性
不可变基础设施原则
- 声明式配置:所有基础设施均以代码形式定义
- 版本控制:基础设施变更被跟踪和版本化
- 可复现部署:不同部署环境保持一致
- 回滚能力:轻松回滚到之前的基础设施状态
Cluster API 优势
- 标准化接口:不同基础设施 Provider 之间一致的 API
- 多云支持:支持跨不同云平台部署集群
- 可扩展架构:便于添加新的 Provider 和功能
- Kubernetes 原生:利用 Kubernetes 模式和工具链
基础设施 Provider 集成
- 原生资源管理:直接集成 Provider 的 API
- 资源优化:根据 Provider 能力高效分配和调度资源
WARNING
升级依赖于 Cluster API 的滚动更新机制。在滚动更新期间,任何之前挂载的磁盘都会被移除,并在新创建的机器上替换为新的磁盘。请确保集群功能或工作负载不依赖于原始磁盘上的数据。