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