华为云 Stack 基础设施资源
概述
在为华为云 Stack(HCS)集群编写 YAML 之前,请先准备好所有必需的 HCS 输入。本页列出了在填充任何 Secret、HCSMachineConfigPool、HCSMachineTemplate、KubeadmControlPlane 或 HCSCluster 清单之前必须准备好的值、来源和约束。
请将本页作为准备检查清单。完成后,请继续阅读 在华为云 Stack 上创建集群 和 在华为云 Stack 上管理节点,了解清单工作流。
命名空间要求
所有 HCS 基础设施资源都必须部署在 cpaas-system 命名空间中,以确保其作为业务集群与平台正确集成。
在编写 YAML 之前
在创建或编辑任何集群清单之前,请先准备以下输入:
凭证 Secret 输入
只有在收集齐所有必需值后,才创建 HCS 凭证 Secret。
说明: 租户管理员无法从 HCS UI 中检索 region。在对 Secret 进行编码之前,请先从 HCS 管理员处获取提供程序识别的准确值。
计算值
在编写 HCSMachineTemplate 之前,请准备好 VM 镜像、flavor、可用区和磁盘布局。
说明: 租户管理员无法从 HCS UI 中检索由提供程序识别的 flavorName 和 availabilityZone 值。在编写清单之前,请先从 HCS 管理员处获取准确的 API 值。
版本和组件基线
仅对其明确列出的组件版本使用 OS 支持矩阵,例如受支持 MicroOS 镜像的 Kubernetes、coredns、etcd 和 pause 版本。
OS 支持矩阵并不是所有 HCS 清单值的完整来源。在编写 YAML 之前,还应获取经过批准的发布基线值,例如容器镜像仓库、DNS 镜像仓库、Kube-OVN 版本、Kube-OVN join CIDR、Pod CIDR 和 Service CIDR。如果你的发布尚未提供完整的基线来源,请使用平台或发布负责人为你的环境验证过的值。
网络库存
在编写 HCSCluster 或 HCSMachineConfigPool 资源之前,请准备完整的集群网络库存。
你的网络规划必须包括:
- 目标 VPC 名称
- 目标安全组名称
- 集群将使用的每个子网名称
- 每个子网的子网 ID 和与 ELB 相关的子网元数据
- 每个子网的 CIDR
- 每个子网的网关和 DNS 值
- 控制平面节点、工作节点、ELB VIP 以及 ELB L4/L7 虚拟子网 IP 的规划空闲 IP 范围
如果单个集群使用多个子网,这些子网必须属于同一个 VPC,并且必须允许集群节点彼此通信。
重要: HCSCluster.spec.network.subnets 是集群子网库存。HCSMachineConfigPool、vipSubnetName、elbVirsubnetL4Ips[].subnetName 和 elbVirsubnetL7Ips[].subnetName 引用的每个 subnetName 都必须已经存在于该列表中。
对于初始集群创建流程,控制器可以在集群变为 Ready 之前按名称解析现有子网。对于已存在的 Ready 集群,不要只追加子网名称。请添加完整的子网对象,至少包括 name、id,以及当该子网被控制平面 ELB 使用时的 neutronSubnetId。同时也要在库存中保留 cidr、gatewayIp、primaryDNS 和 secondaryDNS,以确保集群子网列表完整。
多 NIC 约束
多个 NIC 在 HCSMachineConfigPool.spec.configs[].networks[] 中声明。每个 networks[] 条目只为一个 NIC 选择一个子网和一个静态 IP。
当前提供程序不允许你声明:
- 每个 NIC 的角色或用途,例如管理、服务或存储流量
- 特定 NIC 的默认网关
- 静态路由或路由度量
- 每个 NIC 的 DNS 设置
请将当前的多 NIC 能力视为 NIC 连接加上子网和静态 IP 选择。
控制平面 ELB 地址规划
HCS 提供程序会自动创建控制平面 Elastic Load Balance(ELB)。在编写 HCSCluster 之前,请先规划 ELB 输入。
本文档使用固定地址 ELB 工作流。在编写 HCSCluster 之前,请准备所有与 ELB 相关的地址:
vipSubnetNamevipAddresselbVirsubnetL4Ips,且必须恰好包含两个 L4 IPelbVirsubnetL7Ips,且必须恰好包含两个 L7 IP- 可选的
vipDomainName
如果设置了 vipDomainName,请配置 HCS Cloud DNS Private Zones,使该域名已解析到 vipAddress。
运行约束
- 提供程序会创建 ELB 并启用 Hybrid Load Balancing,以便集群节点可以通过 ELB 地址访问 API server。
- 集群创建后,不要在 HCS ELB 上禁用 Hybrid Load Balancing。
- 不要在创建清单中编写
spec.controlPlaneEndpoint。控制器会在 ELB 就绪后填充该字段。
静态 IP 池规划
本页重点介绍已规划的静态 IP 工作流。
在创建 HCSMachineConfigPool 资源之前,请准备以下内容:
- 控制平面主机名和静态 IP
- 工作节点主机名和静态 IP(如果会创建工作节点)
- 足以覆盖初始从节点数量的条目
对于至少有三个从节点的静态 IP 控制平面,推荐的升级路径使用 KubeadmControlPlane.spec.rolloutStrategy.rollingUpdate.maxSurge: 0。这种先缩容再扩容的方式通常不需要额外的控制平面 IP。如果你计划采用单控制平面、仅创建的拓扑(replicas: 1),不要将该 rollout 设置复制到创建清单中。只有在你计划增加控制平面从节点数量或将 maxSurge 设为大于 0 时,才准备额外的主机名和 IP 槽位。
值到 YAML 的映射
在完成准备检查清单后,请使用以下映射:
后续步骤
完成准备检查清单后:
- 按照 在华为云 Stack 上创建集群 编写控制平面和基础设施清单
- 按照 在华为云 Stack 上管理节点 添加或修改工作节点