在 Alauda OS 上创建集群

在此路径中, 会创建节点运行 Alauda OS(不可变操作系统)的业务集群。与节点运行非 Alauda OS 的集群不同,所有节点配置都预先构建在镜像中,并在部署后保持不变。集群升级和配置更改通过使用新镜像替换节点来应用,从而确保整个集群生命周期内的一致性、可靠性和简化的运维。

此路径上的集群通过 Cluster API 以声明式方式创建和管理。每个受支持的 IaaS 平台都由对应的基础设施提供程序从 Alauda OS 镜像创建节点。在裸金属环境中,您需要提供物理服务器;这些服务器会启动由提供程序构建的安装 ISO,并安装 Alauda OS。

此路径遵循以下原则:

  • 声明式配置:所有基础设施均以代码形式定义
  • 版本控制:基础设施变更均有跟踪和版本记录
  • 可复现部署:不同部署之间的环境保持一致
  • 阶段感知恢复:通过可复现的机器替换安全地恢复模板;当 Kubernetes 次要版本升级更改了控制平面状态时,则使用基于备份的恢复

架构

Alauda OS 上的集群生命周期管理基于 Cluster API (CAPI) 框架构建,该框架提供声明式、原生 Kubernetes 的方法:

  • 声明式 API:用于集群管理的原生 Kubernetes 资源
  • 提供程序接口:适用于不同基础设施提供程序的标准化接口
  • 生命周期管理:自动执行集群预配、扩缩和升级
  • GitOps 集成:原生支持 GitOps 工作流

三个 Cluster API 提供程序协同工作,以两个软件包的形式交付:Alauda Container Platform Cluster Bootstrap Provider 负责 Kubernetes 引导和控制平面管理,基础设施提供程序则负责管理 IaaS 平台。

引导提供程序(Kubeadm)

适用于 kubeadm 的 Cluster API 引导提供程序负责初始化和配置 Kubernetes 节点:

  • 节点初始化:自动将裸机转换为 Kubernetes 节点
  • 配置管理:管理 kubelet 配置、证书和引导令牌
  • 加入流程:处理工作节点加入集群的流程
  • 证书管理:自动生成和轮换证书

控制平面提供程序(Kubeadm)

适用于 kubeadm 的 Cluster API 控制平面提供程序负责管理 Kubernetes 控制平面:

  • 控制平面部署:部署和管理 Kubernetes API server、etcd 及控制平面组件
  • 高可用性:支持通过负载均衡实现多节点控制平面部署
  • 升级管理:处理控制平面组件的滚动升级
  • 运行状况监控:监控控制平面运行状况并执行恢复操作

基础设施提供程序

目标 IaaS 平台的基础设施提供程序(例如 Huawei DCS)负责管理底层基础设施:

  • 计算资源预配:在目标平台上创建和管理虚拟机或实例
  • 网络配置:设置网络基础设施
  • 资源管理:管理计算、存储和网络资源
  • 提供程序集成:与提供程序的 API 和服务集成

Cluster API 架构

支持的提供程序

每个基础设施提供程序都与一个 IaaS 平台集成,以提供集群生命周期管理。

提供程序说明
裸金属不使用虚拟化的裸金属服务器
Huawei DCSHuawei Datacenter Virtualization Solution
Huawei Cloud StackHuawei Cloud Stack
VMware vSphereVMware vSphere 虚拟化平台

控制平面端点

每个集群的 Kubernetes API server(kube-apiserver,端口 6443)都通过控制平面端点访问。该端点是一个虚拟 IP(VIP)或负载均衡器地址,位于控制平面节点前端。不同提供程序提供该端点的方式有所不同,因此在创建集群之前需要准备的内容也各不相同。

提供程序控制平面端点机制需要准备的内容
裸金属由提供程序创建(或由你提供)BaremetalCluster.spec.controlPlaneLoadBalancer.type=Internal 会将 alive chart(keepalived + IPVS + kube-lock Lease 仲裁)部署到控制平面节点;type=External 将 LB 委托给现有的外部设备选择一个未使用的 VIP、端口(通常为 6443)以及一个在控制平面二层广播域内唯一的 vrid
Huawei DCS由你提供,或由提供程序管理自建 VIP外部负载均衡器、由提供程序管理的 type: internal 自建 VIP,或直接访问单个控制平面节点对于外部模式,请在创建集群之前预配负载均衡器。对于内部模式,请在控制平面二层网络中预留一个 IPv4 VIP,并使用 DCS YAML 工作流
Huawei Cloud Stack由提供程序创建集群协调期间自动创建的 HCS 弹性负载均衡(ELB)实例在 HCSCluster.spec.controlPlaneLoadBalancer 中规划 ELB 输入项——VIP 子网、VIP 地址、带宽和公网 IP 偏好
VMware vSphere由提供程序创建(或由你提供)VSphereCluster.spec.controlPlaneLoadBalancer.type=internal 会在控制平面节点上部署 Alive(keepalived + IPVS);type=external 或不设置该字段时,会将 LB 委托给现有的外部设备。模式在创建集群时确定对于 internal,请选择一个未使用的 IPv4 VIP、一个端口(通常为 6443)以及一个在控制平面二层广播域内唯一的 vrid。对于 external,请在创建集群之前预配负载均衡器

Huawei Cloud Stack 是唯一会为你创建平台负载均衡器对象的 VM 提供程序。外部负载均衡器(包括其 VIP 分配和后端(真实服务器)维护)需在集群外部准备并由外部管理。在裸金属、Huawei DCS 和 VMware vSphere 上,提供程序也可以改为部署集群内 VIP 组件(alive)。各模式的要求请参阅规划控制平面端点。

Web UI 支持(Fleet Essentials)

Fleet Essentials 是一个集群插件,可为集群管理提供共享的 Web UI 框架。基础设施提供程序可以通过 UI 扩展锚点扩展该框架,以添加特定于平台的页面和工作流。

安装后,Fleet Essentials 可提供以下功能:

  • 统一集群管理:通过单一界面管理所有平台上的集群
  • 基础设施资源管理:配置云凭据、IP 池和机器模板
  • 集群生命周期操作:通过引导式工作流创建、查看、升级和销毁集群
  • 节点池管理:以声明式方式管理节点池,并支持扩缩和升级

实现这些 Fleet Essentials 扩展锚点的提供程序可以添加自己的集群创建工作流和管理页面:

  • 裸金属提供程序:在物理服务器上提供仅基于 YAML 的集群生命周期管理。裸金属集群没有 Fleet Essentials UI;所有工作流均通过针对 BaremetalCluster、BaremetalMachineTemplate、MachineInventoryPool 和上游 CAPI 资源的 kubectl apply 驱动
  • DCS 提供程序:在 Huawei DCS 上添加 DCS 专用的 UI 页面和工作流。用于池管理持久磁盘的 DCSIpHostnamePool.spec.pool[].persistentDisk 配置仅支持 YAML
  • HCS 提供程序:安装 Fleet Essentials 1.0.2 或更高版本后,支持在 Huawei Cloud Stack 上通过 Web UI 管理集群;同时支持基于 YAML 的集群生命周期管理,包括通过 HCSMachineConfigPool.spec.configs[].persistentDisks[] 管理池中的持久磁盘
  • vSphere 提供程序:在 VMware vSphere 上提供基于 YAML 的集群生命周期管理。vSphere 集群的创建和管理没有 Fleet Essentials UI 扩展

在 global 集群上安装提供程序

安装 global 集群后,以及在 Bare Metal、Huawei DCS、Huawei Cloud Stack 或 VMware vSphere 上创建业务集群之前,请将该 IaaS 平台的基础设施提供程序与集群引导提供程序一起上传并安装到 global 集群上。无论 global 集群本身运行在哪个 IaaS 平台上,此要求均适用。

要安装提供程序,请从 Customer Portal 下载其软件包,提供程序会列在 Common ACP Extensions 下;使用 violet push 上传软件包,并将其作为集群插件安装。请参阅安装基础设施提供程序。

在 Alauda OS global 集群上升级 Kubernetes 时,也必须先将该 IaaS 平台的提供程序上传并安装到 global 集群上。

集群创建工作流

按以下顺序在 Alauda OS 上创建业务集群。准备按相同顺序介绍了前三个步骤。

  1. 安装提供程序:在 global 集群上安装适用于 IaaS 平台的提供程序和集群引导提供程序。
  2. 基础设施资源:配置提供程序所需的基础设施资源,例如云凭据、IP 池和机器模板。Bare Metal 没有单独的基础设施资源页面;其主机准备工作包含在提供程序安装和集群创建页面中。
  3. 规划集群:阅读准备,了解适用于所有提供程序的决策,例如控制平面端点模式和集群的镜像仓库。此外,在创建集群之前还需检查以下内容:
    • 节点标签和污点:如果计划使用专用节点池(监控、日志记录、入口),请在创建节点池之前,阅读基础设施节点中关于如何在节点池上声明角色标签和污点的内容。
    • CPU 基线:对于使用 ACP 提供的 Alauda OS 镜像的 x86_64 集群节点,其底层 CPU 必须支持 x86-64-v2 ISA 基线。详情请参阅OS 支持矩阵。
  4. 创建集群:创建集群,包括其首批工作节点。

每个提供程序都有介绍这些步骤的专属页面:

如果集群创建或删除停滞,请参阅故障排除。

场景文档
在 Alauda OS 上安装 global 集群安装 global 集群
为 global 集群规划灾难恢复global 集群灾难恢复
升级 global 集群升级 Distribution 版本,然后在 Alauda OS 上升级 Kubernetes
升级业务集群升级 Distribution 版本,然后在 Alauda OS 上升级 Kubernetes
管理集群节点管理 Alauda OS 集群上的节点
配置机器(OS 或内核级别)机器配置
查找 Cluster API 和提供程序资源Cluster API 参考 和 提供程序 API

准备

裸金属

Huawei DCS

Huawei Cloud Stack

VMware vSphere

故障排除