VMware vSphere 提供商
VMware vSphere 基础设施提供商支持在 VMware vSphere 平台上实现不可变基础设施。此提供商基于 Cluster API Provider vSphere (CAPV) 构建,并与 vCenter 集成,为 Kubernetes 集群配置和管理虚拟机、网络及存储。
概述
VMware vSphere 是 VMware 推出的业界领先虚拟化平台。vSphere 提供商直接连接到 vCenter 以管理 VM 生命周期,并通过声明式节点槽位分配扩展 CAPV,使主机名、静态 IP 地址和持久磁盘能够在配置集群之前预先定义。
端点模式和磁盘生命周期
本文档已针对 VMware vSphere 提供商 v1.0.17 完成验证。该提供商支持两种控制平面端点模式:外部 LoadBalancer(默认模式)和由提供商管理的自建 VIP(VSphereCluster.spec.controlPlaneLoadBalancer.type: internal,使用 keepalived 和 IPVS 的 Alive)。自建 VIP 要求 ACP v4.4 或更高版本,并且必须在创建时选择:只有使用 v1.0.17 或更高版本创建的集群才可用;已经存在的集群(包括其提供商从早期版本升级而来的集群)会继续使用外部 LoadBalancer,无法采用该模式。Machine-config-pool 持久磁盘遵循由提供商管理的 InUse → Released → reuse or reclaim 生命周期;请参阅 VMware vSphere 基础设施准备。
主要功能
- vCenter 集成:直接连接 vCenter 以克隆 VM 模板、管理 VM 生命周期,并将工作负载放置到目标数据中心、计算集群和数据存储中
- 两种控制平面端点模式:由您管理的外部 LoadBalancer,或由提供商管理的控制平面节点上的自建 VIP(
type: internal,使用 keepalived 和 IPVS 的 Alive,其中引导 VIP 会在kubeadm init后移交给 Alive),后者要求 ACPv4.4或更高版本。集群创建后无法更改该模式 - 机器配置池:
VSphereMachineConfigPool为每个节点定义槽位,并配置固定主机名、静态 IP 和每个槽位的数据磁盘布局。同一现有池中的替换 Machine 可以重新使用已释放的槽位,但不同池对象之间不会共享槽位和 VMDK - 静态 IP 分配:为每个节点槽位配置静态 IP、网关和 DNS,适用于无法使用 DHCP 的企业网络环境
- 多 NIC 支持:每个节点支持主 NIC 和附加 NIC,其中主 NIC 用于驱动 kubelet
node-ip,附加 NIC 则按声明顺序连接到管理、存储或服务网络 - 多个数据中心和故障域:通过
VSphereFailureDomain和VSphereDeploymentZone将控制平面节点和工作节点分布到多个 vCenter 数据中心或计算集群中,以实现高可用性 - 灵活的数据磁盘:以声明式方式为每个槽位配置持久和临时数据磁盘,并支持可选的格式化/挂载、持久磁盘上的
wipeFilesystem控制、通过/dev/disk/by-capv/<name>暴露的原始设备模式,以及延迟释放,以便替换 Machine 在提供商管理的回收前重新使用槽位和 VMDK - 基于不可变模板的滚动更新:控制平面和工作节点更新使用新的
VSphereMachineTemplate和KubeadmConfigTemplate资源,从而支持可复现的替换和相同次版本的模板恢复
支持的资源
下表列出了本文档中各工作流使用的主要面向用户的资源。控制器协调的资源(例如 VSphereVM)以及文档所述工作流未涉及的资源(例如 VSphereClusterIdentity,它是本文使用的基于 Secret 的 identityRef 的替代方案)则完整记录在 提供商 API 参考中。