规划控制平面端点
每个集群都需要一个用于 Kubernetes API 的稳定端点。在创建集群之前选择端点模式,并在 kubeadm 初始化控制平面后保持地址稳定。
按 Provider 划分的端点模式
此版本中可用的端点模式取决于 Provider。
对于 DCS,type: internal 需要 ACP v4.4+。请在创建集群之前进行规划。使用外部 LoadBalancer 的现有集群将继续使用它,除非你已有经过测试的迁移计划。
对于 vSphere,type: internal 需要 vSphere Provider v1.0.17+ 和 ACP v4.4+,并且这是创建时的选择:只有以这种方式创建的集群才能使用它,而 Provider 从早期版本升级的集群会继续使用其外部 LoadBalancer。此外,还要求 alive 集群插件已存在,并且可以部署到 global 集群,因为 Provider 通过 ModuleInfo 安装 Alive,而不是自行提供它。在规划模式之前,请验证所有这些条件;请参阅控制平面端点模式。
External LoadBalancer 契约
在应用 Cluster API 资源之前,配置并验证负载均衡器。
有关 ACP 端口要求,请参阅以下页面:
- 对于
global集群,请参阅负载均衡器转发规则。 - 对于业务集群,请参阅连接 global 集群和业务集群。
集群初始化后,不要将更改控制平面端点作为常规负载均衡器编辑操作。该端点已嵌入 API server 证书、kubeconfig 和管理集群连接中。更改端点需要经过规划的证书和连接迁移。
验证外部 LoadBalancer
在创建集群之前,确认侦听器已存在,并且引导环境或管理环境可以打开前端端口:
至少有一个 API server 运行后,从代表负载均衡器的网络位置验证首选健康检查:
预期响应为 ok,HTTP 状态为 200。
自建 VIP 契约
对于 Huawei DCS,仅将此契约用于 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,且错误的选择之后无法通过修补进行更改。 VSphereCluster.status.conditions[SelfBuiltLoadBalancerReady]仅报告 VIP 链路。它不会控制VSphereCluster.status.ready,因此基础设施集群可能在 VIP 仍处于收敛过程中时就报告已就绪。
有关 DCS 清单和验证,请参阅在 Huawei DCS 上创建集群。有关裸金属清单,请参阅在裸金属上创建集群。有关 vSphere,请参阅控制平面端点模式。