熟悉 vSphere Cloud Native Storage 环境的一些基本概念。

云原生存储环境的组件。

Kubernetes 集群
Cloud Native Storage 环境中,可以在虚拟机集群中部署一个通用 Kubernetes 集群。在 Kubernetes 集群上,您可以部署容器化的应用程序。应用程序可以是有状态的和无状态的。
注: 有关可在 vSphere IaaS control plane 环境中运行的 主管 集群和 Tanzu Kubernetes Grid 集群的信息,请参见 vSphere IaaS 控制平面概念和规划文档。
Pod
Pod 是由一个或多个共享存储和网络等资源的容器化应用程序组成的组。Pod 中的容器以组的形式启动、停止和复制。
容器 Orchestrator
用于跨主机集群部署、扩展和管理容器化应用程序的开源平台,例如 Kubernetes。这些平台提供了以容器为中心的基础架构。
有状态应用程序
由于容器化应用程序从无状态发展为有状态,它们需要持久性存储。无状态应用程序不会在会话之间保存数据,与之不同的是,有状态应用程序会将数据保存到持久性存储中。保留的数据称为应用程序的状态。之后,您可以检索数据,并在下一个会话中使用该数据。大多数应用程序都是有状态的。数据库是有状态应用程序的示例。
PersistentVolume
有状态应用程序使用 PersistentVolume 存储其数据。PersistentVolume 是一个能够保留其状态和数据的 Kubernetes 卷。PersistentVolume 独立于 Pod,即使删除或重新配置 Pod,它也可以继续存在。在 vSphere 环境中,PersistentVolume 对象使用第一类磁盘 (FCD) 类型的 vSphere 虚拟磁盘或 vSAN 文件共享作为其后备存储。第一类磁盘也称为增强型虚拟磁盘 (IVD) 或受管虚拟磁盘。
  • 虚拟磁盘支持以 ReadWriteOnce 形式挂载的卷。这些卷只能由 Kubernetes 中的一个 Pod 使用。

    可以使用 vSphere 加密技术保护支持持久卷的 FCD 虚拟磁盘。有关详细信息,请参见将加密与 vSphere 云原生存储结合使用

  • vSAN 文件共享支持许多节点挂载的 ReadWriteMany 卷。可以在跨 Kubernetes 节点或跨 Kubernetes 集群运行的多个 Pod 或应用程序之间共享这些卷。有关文件共享的可能配置的信息,请参见使用 vSAN 文件服务置备 vSphere 文件卷
StorageClass
Kubernetes 使用 StorageClass 定义不同的存储层,并描述不同类型的支持 PersistentVolume 的存储要求。在 vSphere 环境中,可以将存储类链接到存储策略。作为 vSphere 管理员,您可以创建存储策略来描述不同的存储要求。这些虚拟机存储策略可用作 StorageClass 定义的一部分,以便进行动态卷置备。

以下示例 YAML 文件引用之前使用 vSphere Client 创建的 Gold 存储策略。生成的持久卷 VMDK 放置在满足 Gold 存储策略要求的兼容数据存储上。

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: gold-sc
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: csi.vsphere.vmware.com
parameters:
  storagepolicyname: "Gold"
  
PersistentVolumeClaim
通常,应用程序或 Pod 可以通过 PersistentVolumeClaim 请求持久存储。PersistentVolumeClaim 可为 PersistentVolume 指定存储的类型和类、访问模式(ReadWriteOnce 或 ReadWriteMany)以及其他参数。然后,该请求可以在 vSphere 环境中动态置备相应的 PersistentVolume 对象和底层虚拟磁盘或 vSAN 文件共享。
创建声明后,PersistentVolume 会自动绑定到声明。Pod 使用声明挂载 PersistentVolume 并访问存储。
删除此声明时,将删除相应的 PersistentVolume 对象和底层存储。
kind: PersistentVolumeClaim
metadata:
 name: persistent-VMDK
spec:
 accessModes:
 - ReadWriteOnce
 resources:
 requests:
 storage: 5Gi
 storageClassName: gold-sc