核心概念

本节介绍 Hosted Control Plane 的核心概念和架构原则。理解这些概念对于有效部署和管理 Hosted Control Plane 集群至关重要。

目录

您将学到的内容

  • 核心概念:基础构建模块,包括 Management Cluster、Hosted Control Plane、Data Plane、DataStore 以及关键的 Kubernetes 资源
  • 架构深度解析:深入探讨架构、设计原则、通信流程和配置最佳实践

概述

Alauda Hosted Control Plane 引入了一种 Kubernetes 集群管理的新范式,通过将控制平面组件与数据平面节点解耦。控制平面组件不再需要专用物理节点托管,而是作为标准 Kubernetes 工作负载运行在共享的管理集群中。

这种架构方式带来了显著优势:

  • 资源效率:多个控制平面共享基础设施,硬件需求降低 60-80%
  • 运维简化:使用标准 Kubernetes 工具集中管理所有控制平面
  • 快速部署:无需分配专用基础设施即可在几分钟内部署新集群
  • 增强隔离:控制平面与数据平面独立运行,故障域分离更好
  • 更大灵活性:支持边缘计算、混合云和多租户场景

关键概念一览

概念描述
Management Cluster运行在 Alauda Container Platform 上,托管多个控制平面实例的 Kubernetes 集群
Hosted Control Plane作为工作负载运行的 Kubernetes 控制平面组件(API server、controller manager、scheduler)
Data Plane运行应用工作负载的独立基础设施中的工作节点
DataStore用作控制平面数据存储后端的外部 etcd 集群配置
TenantControlPlaneKamaji 资源,表示单个集群的完整控制平面实例
Konnectivity维护控制平面与工作节点之间安全连接的网络代理
Cluster APIKubernetes 用于声明式集群生命周期管理的标准

核心概念

Management Cluster

Management Cluster 是一个 Kubernetes 集群,托管一个或多个业务集群的控制平面组件。它以标准 Kubernetes 部署和有状态集的形式运行所有控制平面工作负载(API server、controller manager、scheduler)。

主要特征:

  • 业务集群托管于 Alauda Container Platform
  • 必须支持 LoadBalancer 类型服务(例如 MetalLB)
  • 托管多个控制平面,具备适当隔离
  • 需要集群插件:Kubeadm Provider、Hosted Control Plane、SSH Infrastructure Provider

使用场景:

  • 多 Kubernetes 集群的集中管理
  • 通过资源共享降低基础设施开销
  • 实现多租户集群架构

Hosted Control Plane

Hosted Control Plane 是作为工作负载运行在管理集群中的 Kubernetes 控制平面,而非运行在专用节点上。每个 Hosted Control Plane 包含:

  • API Server:通过 LoadBalancer 服务暴露
  • Controller Manager:管理集群资源
  • Scheduler:调度 Pod 到工作节点
  • Konnectivity Server:维护与工作节点的安全连接

控制平面与数据平面完全解耦,支持独立扩缩容、升级和管理。

优势:

  • 通过共享基础设施提升资源利用率
  • 更快的集群部署速度
  • 简化控制平面升级流程
  • 更好的故障域隔离

Data Plane

Data Plane 由运行实际工作负载(应用、服务、Pod)的工作节点组成。在 Hosted Control Plane 架构中,数据平面与控制平面完全分离。

特征:

  • 工作节点可位于不同网络或物理位置
  • 通过 Konnectivity Agent 与控制平面连接
  • 可独立于控制平面进行扩缩容
  • 使用标准 Kubernetes 组件(kubelet、kube-proxy、CNI)

DataStore

DataStore 是定义控制平面数据存储后端的 Kubernetes 自定义资源。它配置连接到外部 etcd 集群,用于存储一个或多个 Hosted Control Plane 的所有 Kubernetes API 对象。

配置内容包括:

  • Etcd 集群端点(多节点以保证高可用)
  • 用于安全通信的 TLS 证书
  • 用于验证的 CA 证书

示例:

apiVersion: kamaji.clastix.io/v1alpha1
kind: DataStore
metadata:
  name: default-datastore
spec:
  driver: etcd
  endpoints:
    - etcd-0.etcd.cpaas-system.svc.cluster.local:2379
    - etcd-1.etcd.cpaas-system.svc.cluster.local:2379
    - etcd-2.etcd.cpaas-system.svc.cluster.local:2379
  tlsConfig:
    certificateAuthority: ...
    clientCertificate: ...

要点:

  • 单个 DataStore 可服务多个 Hosted Control Plane
  • 当前版本仅支持 etcd 驱动
  • 生产环境需配置 TLS

TenantControlPlane

TenantControlPlane(由 Kamaji 管理)表示单个集群的完整 Kubernetes 控制平面。创建 KamajiControlPlane 资源时会自动创建 TenantControlPlane,负责管理:

  • 控制平面部署副本数
  • 服务端点和 LoadBalancer
  • 证书和密钥
  • 插件组件(CoreDNS、kube-proxy、Konnectivity)

状态信息包括:

  • Kubernetes 版本
  • 控制平面端点(LoadBalancer IP)
  • 就绪状态
  • Kubeconfig 密钥引用
  • 关联的 DataStore

Cluster API 资源

Hosted Control Plane 基于 Cluster API (CAPI),这是一个用于声明式集群管理的 Kubernetes 项目。关键 CAPI 资源包括:

Cluster

定义 Kubernetes 集群,包括网络配置(Pod CIDR、Service CIDR)及对控制平面和基础设施资源的引用。

KamajiControlPlane

定义 Hosted Control Plane 配置,包括:

  • Kubernetes 版本
  • 控制平面副本数
  • DataStore 引用
  • 插件配置(CoreDNS、kube-proxy、Konnectivity)
  • 网络服务类型(LoadBalancer)

SSHCluster

基于 SSH 的基础设施集群定义,包括:

  • 容器镜像仓库配置
  • 网络插件选择(Calico)
  • LoadBalancer 配置

MachineDeployment

声明式管理一组工作节点,类似于 Pod 的 Deployment。包括:

  • 副本数
  • 机器模板引用
  • 引导配置引用
  • 版本规格

SSHHost

表示可通过 SSH 访问的物理或虚拟机。定义:

  • IP 地址和 SSH 端口
  • 认证凭据
  • 重用策略(删除后是否清理重用)

Konnectivity

Konnectivity 是一种网络连接解决方案,维护控制平面(管理集群内)与工作节点(数据平面内)之间的安全连接。包含:

  • Konnectivity Server:运行于控制平面 Pod 中
  • Konnectivity Agent:作为 DaemonSet 运行于工作节点

作用:

  • 使 API server 能与工作节点上的 kubelet 通信
  • 支持 Pod exec、日志和端口转发操作
  • 跨越网络边界和防火墙工作
  • 使用带 TLS 认证的安全隧道

容器运行时

容器运行时 负责在工作节点上运行容器。Hosted Control Plane 当前支持:

  • Containerd 1.7.27-4:业界标准容器运行时

配置:

  • SSHMachineTemplate 资源中指定
  • 工作节点自动安装
  • 支持私有镜像仓库认证

网络配置

网络配置定义集群组件使用的 IP 地址范围:

Pod CIDR

分配给 Pod 网络的 IP 地址范围。每个 Pod 从该范围获得一个 IP。

要求:

  • 不得与管理集群的 Pod CIDR 重叠
  • 不得与 Service CIDR 重叠
  • 典型格式:10.x.0.0/16

Service CIDR

分配给 Kubernetes 服务的 IP 地址范围。每个服务从该范围获得一个集群 IP。

要求:

  • 不得与管理集群的 Service CIDR 重叠
  • 不得与 Pod CIDR 重叠
  • 典型格式:10.x.0.0/16

网络插件

当前支持 Calico,提供:

  • Pod 间网络通信
  • 网络策略执行
  • IP 地址管理(IPAM)