规划控制平面端点
每个集群都需要一个用于 Kubernetes API 的稳定端点。请在创建集群之前选择端点模式,并在 kubeadm 初始化控制平面后保持地址稳定。
Provider 和版本边界
端点功能取决于 Provider 版本。仅 ACP 次要版本并不能启用某项 Provider 功能。
对于 DCS,type: internal 要求 DCS Provider v1.0.22+ 和 ACP v4.4+。DCS Provider v1.0.21 及更早版本仅支持外部 LoadBalancer 路径。不要仅根据 ACP 版本推断 Provider 功能。
对于 vSphere,type: internal 要求 vSphere Provider v1.0.17+ 和 ACP v4.4+,并且这是一个创建时选项:只有以这种方式创建的集群才能使用该模式,而 Provider 从早期版本升级的集群会继续使用其外部 LoadBalancer。此外,还要求 alive 集群插件存在,并且能够部署到 global 集群上,因为 Provider 通过 ModuleInfo 安装 Alive,而不是自行提供 Alive。在规划模式之前,请验证所有这些条件;请参阅控制平面端点模式。
外部 LoadBalancer 合约
在应用 Cluster API 资源之前,先配置并验证 LoadBalancer。
对于 ACP 端口要求,请使用权威页面,而不要将完整端口矩阵复制到本文档中:
- 对于
global集群,请参阅 LoadBalancer Forwarding Rules。 - 对于业务集群,请参阅 Connecting global Cluster and Workload Cluster。
集群初始化后,不要仅将控制平面端点的更改当作常规 LoadBalancer 编辑来进行。该端点已嵌入 API server 证书、kubeconfig 以及管理集群连接中。更改端点需要经过规划的证书和连接迁移。
验证外部 LoadBalancer
在创建集群之前,确认监听器已存在,并且 Bootstrap 或管理环境能够打开前端端口:
至少有一个 API server 运行后,从代表 LoadBalancer 的网络位置验证首选健康检查:
预期响应为 ok,HTTP 状态为 200。
自建 VIP 契约
对于 Huawei DCS,仅将此契约用于 DCS Provider v1.0.22+ 和 ACP v4.4+。在 VMware vSphere 上,它适用于 Provider v1.0.17 及更高版本。对于裸金属,请遵循 Provider 专属指南。
- 在与将承载 VIP 的控制平面接口位于同一 Layer-2 网络中预留一个未使用的 IPv4 地址。
- 使用在该 Layer-2 域中唯一的 VRID。
- 允许控制平面节点与周围网络之间的 VRRP 流量和免费 ARP 更新。
- 至少使用三个控制平面节点以实现高可用性。
- 确保节点镜像和受支持的
alive软件包提供所需的 VIP 运行时和 IPVS 配置。 - 对于自建 VIP,使用 IP 地址而不是域名。
- 当控制平面节点被替换时,让 Provider 和 Alive 协调 VIP 与后端成员关系。不要为同一 VIP 维护第二个手动后端列表。
在 VMware vSphere 上,还需遵循以下规则:
- VIP 必须为 IPv4。不接受 IPv6 和双栈端点。
vrid必须介于1和255之间。该范围由 Provider 的准入 webhook 强制执行,而不是由 CRD schema 强制执行,因此超出范围的值会在应用时被拒绝,而不是由kubectl --dry-run=client拒绝。- VIP 不得等于集群
VSphereMachineConfigPool对象中声明的任何槽位地址(network.primary.ip或network.additional[].ip)。它还必须位于每个外部 IPAM 池范围之外;Provider 无法读取这些池,也不会检测到该冲突。 spec.controlPlaneLoadBalancer只能在创建集群时写入,或始终不写入。字段缺失即表示使用外部 LoadBalancer,因此之后无法再填写;已写入的字段也无法编辑或清除。纠正错误需要重建集群。- 在多 NIC 节点上,显式设置
interface。自动检测会匹配节点的主 IP,且之后无法通过 patch 更正错误选择。 VSphereCluster.status.conditions[SelfBuiltLoadBalancerReady]仅报告 VIP 链路状态。它不会控制VSphereCluster.status.ready,因此基础设施集群可能报告已就绪,而 VIP 仍在收敛。
有关 DCS 清单和验证,请参阅在 Huawei DCS 上创建集群。有关裸金属清单,请参阅在裸金属上创建集群。有关 vSphere,请参阅控制平面端点模式。