VMware vSphere 提供商

VMware vSphere 基础设施提供商支持在 VMware vSphere 平台上实现不可变基础设施。此提供商基于 Cluster API Provider vSphere (CAPV) 构建,并与 vCenter 集成,为 Kubernetes 集群配置和管理虚拟机、网络及存储。

概述

VMware vSphere 是 VMware 推出的业界领先虚拟化平台。vSphere 提供商直接连接到 vCenter 以管理 VM 生命周期,并通过声明式节点槽位分配扩展 CAPV,使主机名、静态 IP 地址和持久磁盘能够在配置集群之前预先定义。

INFO

端点模式和磁盘生命周期

本文档已针对 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),后者要求 ACP v4.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 参考中。

资源描述
VSphereCluster表示 vSphere 基础设施,包括 vCenter 端点、控制平面端点和故障域选择器
VSphereMachine表示 vSphere 中的虚拟机实例
VSphereMachineTemplate用于创建 vSphere Machine 的不可变模板,其中包含 VM、CPU、内存、网络和磁盘规格
VSphereMachineConfigPool预定义节点槽位池,其中包含主机名、静态 IP 和每个槽位的数据磁盘布局
VSphereFailureDomain描述用作故障域的数据中心、计算集群、数据存储和网络拓扑
VSphereDeploymentZone将 VSphereFailureDomain 绑定到 vCenter 服务器以及资源池等放置约束

文档