Tanzu Kubernetes Grid 集群,因为在主管命名空间中运行的一些其他组件和工作负载需要持久存储。

Tanzu Kubernetes Grid 集群的存储策略

要向 Tanzu Kubernetes Grid 集群提供持久存储资源,vSphere 管理员需要配置描述不同存储要求的存储策略。然后,管理员将存储策略添加到部署了 Tanzu Kubernetes Grid 集群的命名空间。命名空间可见的存储策略确定了命名空间可以访问和用于持久存储的数据存储。它们规定了如何在 vSphere 存储环境中放置集群节点和工作负载。

根据分配给命名空间的存储策略,vSphere IaaS control plane 会创建在命名空间中自动显示的匹配 Kubernetes 存储类。它们还会传播到此命名空间上的 Tanzu Kubernetes Grid 集群。

Tanzu Kubernetes Grid 集群中,存储类显示为两个版本,一个版本使用 Immediate 绑定模式,另一个版本使用 WaitForFirstConsumer 绑定模式。DevOps 团队根据自己的需求选择版本。

有关 Tanzu Kubernetes Grid 集群中存储类的详细信息,请参见对持久卷使用存储类

Tanzu Kubernetes Grid 集群如何与 vSphere 存储集成

要与主管和 vSphere 存储集成,Tanzu Kubernetes Grid 集群需使用半虚拟 CSI (pvCSI)。

pvCSI 是针对 Tanzu Kubernetes Grid 集群修改的 vSphere CNS-CSI 驱动程序版本。pvCSI 驻留在 Tanzu Kubernetes Grid 集群中,负责来自 Tanzu Kubernetes Grid 集群的所有存储相关请求。这些请求将传送到 CNS-CSI,随后将传播到 vCenter Server 中的 CNS。因此,pvCSI 不会直接与 CNS 组件通信,而是依赖于 CNS-CSI 进行任何存储置备操作。与 CNS-CSI 不同,pvCSI 不需要基础架构凭据。它在命名空间中配置了服务帐户。

pvCSI 是 TKG 集群的组件,CNS-CSI 是主管组件,CNS 是 vCenter Server 组件。

要了解用来与 vSphere 存储集成的主管组件,请参见工作负载的持久存储

如何创建持久卷

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

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

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

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

pvCSI 支持的功能

Tanzu Kubernetes Grid 集群中运行的 pvCSI 组件支持许多 vSphere 和 Kubernetes 存储功能。

支持的功能 Tanzu Kubernetes Grid 集群中的 pvCSI
vSphere Client 中的 CNS 支持
vSphere Client 中的增强型对象运行状况 是(仅限 vSAN)
动态块持久卷(ReadWriteOnce 访问模式)
动态文件持久卷(ReadWriteMany 访问模式) 是(使用 vSAN 文件服务)
vSphere 数据存储 VMFS/NFS/vSAN/vVol
静态持久卷
加密
脱机卷扩展
联机卷扩展
卷拓扑和区域
Kubernetes 多个控制平面实例
WaitForFirstConsumer
VolumeHealth
使用持久卷执行 Storage vMotion