架构

目录

概述

我们的不可变基础设施平台基于 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 Architecture

关键特性

不可变基础设施原则

  • 声明式配置:所有基础设施均以代码形式定义
  • 版本控制:基础设施变更被跟踪和版本化
  • 可复现部署:不同部署环境保持一致
  • 回滚能力:轻松回滚到之前的基础设施状态

Cluster API 优势

  • 标准化接口:不同基础设施 Provider 之间一致的 API
  • 多云支持:支持跨不同云平台部署集群
  • 可扩展架构:便于添加新的 Provider 和功能
  • Kubernetes 原生:利用 Kubernetes 模式和工具链

基础设施 Provider 集成

  • 原生资源管理:直接集成 Provider 的 API
  • 资源优化:根据 Provider 能力高效分配和调度资源
WARNING

升级依赖于 Cluster API 的滚动更新机制。在滚动更新期间,任何之前挂载的磁盘都会被移除,并在新创建的机器上替换为新的磁盘。请确保集群功能或工作负载不依赖于原始磁盘上的数据。