9.5. 动态置备
9.5.1. 关于动态置备
StorageClass 资源对象描述并分类了可请求的存储,并提供了根据需要为动态置备存储传递参数的方法。StorageClass 也可以作为控制不同级别的存储和访问存储的管理机制。集群管理员(cluster-admin
)或者存储管理员(storage-admin
)可以在无需了解底层存储卷资源的情况下,定义并创建用户可以请求的 StorageClass 对象。
OpenShift Container Platform 的持久性卷框架启用了这个功能,并允许管理员为集群提供持久性存储。该框架还可让用户在不了解底层存储架构的情况下请求这些资源。
很多存储类型都可用于 OpenShift Container Platform 中的持久性卷。存储插件可能支持静态置备、动态置备或两种置备类型。
9.5.2. OpenShift Data Foundation 中的动态置备
Red Hat OpenShift Data Foundation 是软件定义的存储,针对容器环境优化。它在 OpenShift Container Platform 上作为操作器运行,为容器提供高度集成和简化的持久性存储管理。
OpenShift Data Foundation 支持各种存储类型,包括:
- 数据库的块存储
- 共享文件存储,用于持续集成、消息传递和数据聚合
- 归档、备份和介质存储的对象存储
第 4 版使用 Red Hat Ceph Storage 来提供支持持久卷的文件、块和对象存储,以及 Rook.io 来管理和编排持久卷和声明的调配。NooBaa 提供对象存储,其多云网关允许在多个云环境中联合对象(作为技术预览使用)。
在 OpenShift Data Foundation 4 中,RADOS 块设备 (RBD) 和 Ceph 文件系统 (CephFS) 的 Red Hat Ceph Storage Container Storage Interface (CSI) 驱动程序处理动态置备请求。当 PVC 请求动态进入时,CSI 驱动程序有以下选项:
-
创建一个具有 ReadWriteOnce (RWO)和 ReadWriteMany (RWX)访问的 PVC,它基于卷模式
Block
的 Ceph RBD。 -
创建一个具有 ReadWriteOnce (RWO)访问的 PVC,它基于卷模式
Filesystem
的 Ceph RBD。 -
创建一个具有 ReadWriteOnce (RWO)和 ReadWriteMany (RWX)访问的 PVC,该 PVC 基于 CephFS 用于卷模式
Filesystem
。 创建基于 CephFS、NFS 和 RBD 的 ReadWriteOncePod (RWOP)访问的 PVC。使用 RWOP 访问模式,您可以将单个 pod 挂载到单个节点上以读写模式挂载。
重要ReadWriteOncePod (RWOP)访问模式是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
判断要使用的驱动程序(RBD 或 CephFS)取决于 storageclass.yaml
文件中的条目。
9.5.3. 可用的动态部署插件
OpenShift Container Platform 提供了以下置备程序插件,用于使用集群配置的供应商 API 创建新存储资源的动态部署:
存储类型 | provisioner 插件名称 | 备注 |
---|---|---|
OpenStack Cinder |
| |
AWS Elastic Block Store (EBS) |
|
当在不同的区中使用多个集群进行动态置备时,使用 |
AWS Elastic File System (EFS) | 动态置备通过 EFS provisioner pod 实现,而不是通过置备程序插件实现。 | |
Azure Disk |
| |
Azure File |
|
|
GCE 持久性磁盘 (gcePD) |
| 在多区(multi-zone)配置中,建议在每个 GCE 项目中运行一个 OpenShift Container Platform 集群,以避免在当前集群没有节点的区域中创建 PV。 |
| ||
Red Hat Virtualization |
|
任何选择的置备程序插件还需要根据相关文档为相关的云、主机或者第三方供应商配置。