vSphere with Tanzu 使用多个组件与 vSphere 存储进行集成。

vCenter Server 上的云原生存储 (CNS)
CNS 组件驻留在 vCenter Server 中。它是 vCenter Server 管理的扩展,用于执行持久卷的置备和生命周期操作。
置备容器卷时,该组件会与 vSphere 第一类磁盘功能进行交互,以创建支持卷的虚拟磁盘。此外,CNS 服务器组件与基于存储策略的管理进行通信,以保证磁盘的所需服务级别。
CNS 还会执行查询操作,以便允许 vSphere 管理员通过 vCenter Server 管理和监控持久卷及其备用存储对象。
第一类磁盘 (FCD)
也称为改进的虚拟磁盘。它是与虚拟机无关的已命名虚拟磁盘。这些磁盘驻留在 VMFS、NFS 或 vSAN 数据存储上,并且支持 ReadWriteOnce 持久卷。

FCD 技术可在虚拟机或 Pod 的生命周期之外执行与持久卷相关的生命周期操作。

使用 FCD 时,请注意以下事项:
  • FCD 不支持 NFS 4.x 协议。请改为使用 NFS 3。
  • vCenter Server 不对同一 FCD 上的操作进行序列化。因此,应用程序无法同时在同一 FCD 上执行操作。从不同的线程同时执行克隆、重新放置、删除、检索等操作会导致不可预知的结果。为避免出现问题,应用程序必须按顺序在同一 FCD 上执行操作。
  • FCD 不是受管对象,不支持保护单个 FCD 的多个写入的全局锁定。因此,FCD 不支持多个 vCenter Server 实例管理同一个 FCD。如果需要将多个 vCenter Server 实例与 FCD 配合使用,可以使用以下选项:
    • 多个 vCenter Server 实例可以管理不同的数据存储。
    • 多个 vCenter Server 实例不能在同一个 FCD 上操作。
基于存储策略的管理
基于存储策略的管理是一种 vCenter Server 服务,它支持根据存储策略中所述的存储要求置备持久卷及其备用虚拟磁盘。置备后,服务会监控具有存储策略特性的卷的合规性。有关基于存储策略的管理的详细信息,请参见 基于存储策略的管理
vSphere CNS-CSI
vSphere CNS-CSI 组件符合容器存储接口 (CSI) 规范,这是一种旨在提供供容器 Orchestrator(如 Kubernetes)用于置备持久存储的接口的行业标准。CNS-CSI 驱动程序在 主管集群 中运行,并将 vSphere 存储连接到 vSphere 命名空间 中的 Kubernetes 环境。vSphere CNS-CSI 直接与 CNS 控制平面进行通信,处理来自 vSphere Pod 和在命名空间的 Tanzu Kubernetes 集群中运行的 pod 的所有存储置备请求。
准虚拟 CSI (pvCSI)
pvCSI 是针对 Tanzu Kubernetes 集群修改的 vSphere CNS-CSI 驱动程序版本。pvCSI 驻留在 Tanzu Kubernetes 集群中,负责来自 Tanzu Kubernetes 集群的所有存储相关请求。这些请求将传送到 CNS-CSI,随后将传播到 vCenter Server 中的 CNS。因此,pvCSI 不会直接与 CNS 组件通信,而是依赖于 CNS-CSI 进行任何存储置备操作。
与 CNS-CSI 不同,pvCSI 不需要基础架构凭据。它在 vSphere 命名空间 中配置了服务帐户。

CNS 显示为 vCenter Server 组件,CNS-CSI 显示为 主管集群 组件。pvCSI 是一个 TKG 集群组件。

下面说明了 DevOps 工程师在 Tanzu Kubernetes 集群中执行存储相关操作(例如,创建持久卷声明 (PVC))时不同组件的交互方式。

DevOps 工程师在 Tanzu Kubernetes 集群上使用命令行创建 PVC。此操作会在主管集群上生成匹配的 PVC,并触发 CNS-CSI。CNS-CSI 将调用 CNS 创建卷 API。

三个组件进行交互以创建持久卷。

成功创建卷后,该操作将通过主管集群传播回 Tanzu Kubernetes 集群。此传播的结果是,用户可以在主管集群中看到持久卷和处于绑定状态的持久卷声明。此外,还会在 Tanzu Kubernetes 集群中看到持久卷和处于绑定状态的持久卷声明。