熟悉 vSphere Cloud Native Storage 环境的一些基本概念。
- Kubernetes 集群
-
在
Cloud Native Storage 环境中,可以在虚拟机集群中部署一个通用 Kubernetes 集群。在 Kubernetes 集群上,您可以部署容器化的应用程序。应用程序可以是有状态的和无状态的。
注: 有关可在 vSphere with Tanzu 中运行的主管集群和 TKG 集群的信息,请参见 vSphere with Tanzu 配置和管理文档。
- Pod
- Pod 是由一个或多个共享存储和网络等资源的容器化应用程序组成的组。Pod 中的容器以组的形式启动、停止和复制。
- 容器 Orchestrator
- 用于跨主机集群部署、扩展和管理容器化应用程序的开源平台,例如 Kubernetes。这些平台提供了以容器为中心的基础架构。
- 有状态应用程序
- 由于容器化应用程序从无状态发展为有状态,它们需要持久性存储。无状态应用程序不会在会话之间保存数据,与之不同的是,有状态应用程序会将数据保存到持久性存储中。保留的数据称为应用程序的状态。之后,您可以检索数据,并在下一个会话中使用该数据。大多数应用程序都是有状态的。数据库是有状态应用程序的示例。
- PersistentVolume
-
有状态应用程序使用 PersistentVolume 存储其数据。PersistentVolume 是一个能够保留其状态和数据的 Kubernetes 卷。PersistentVolume 独立于 Pod,即使删除或重新配置 Pod,它也可以继续存在。在 vSphere 环境中,PersistentVolume 对象使用第一类磁盘 (FCD) 类型的 vSphere 虚拟磁盘或 vSAN 文件共享作为其后备存储。第一类磁盘也称为增强型虚拟磁盘 (IVD) 或受管虚拟磁盘。
- 虚拟磁盘支持以 ReadWriteOnce 形式挂载的卷。这些卷只能由 Kubernetes 中的一个 Pod 使用。
从 vSphere 7.0 开始,可以使用 vSphere 加密技术保护支持持久卷的 FCD 虚拟磁盘。有关详细信息,请参见将加密与云原生存储结合使用。
- vSAN 文件共享支持许多节点挂载的 ReadWriteMany 卷。可以在跨 Kubernetes 节点或跨 Kubernetes 集群运行的多个 Pod 或应用程序之间共享这些卷。有关文件共享的可能配置的信息,请参见使用 vSAN 文件服务置备文件卷。
- 虚拟磁盘支持以 ReadWriteOnce 形式挂载的卷。这些卷只能由 Kubernetes 中的一个 Pod 使用。
- StorageClass
-
Kubernetes 使用 StorageClass 定义不同的存储层,并描述不同类型的支持 PersistentVolume 的存储要求。在 vSphere 环境中,可以将存储类链接到存储策略。作为 vSphere 管理员,您可以创建存储策略来描述不同的存储要求。这些虚拟机存储策略可用作 StorageClass 定义的一部分,以便进行动态卷置备。
以下示例 YAML 文件引用之前使用 vSphere Client 创建的 Gold 存储策略。生成的持久卷 VMDK 放置在满足 Gold 存储策略要求的兼容数据存储上。
- PersistentVolumeClaim
- 通常,应用程序或 Pod 可以通过 PersistentVolumeClaim 请求持久存储。PersistentVolumeClaim 可为 PersistentVolume 指定存储的类型和类、访问模式(ReadWriteOnce 或 ReadWriteMany)以及其他参数。然后,该请求可以在 vSphere 环境中动态置备相应的 PersistentVolume 对象和底层虚拟磁盘或 vSAN 文件共享。