8.5. 动态置备
8.5.1. 关于动态置备
StorageClass 资源对象描述并分类了可请求的存储,并提供了根据需要为动态置备存储传递参数的方法。StorageClass 也可以作为控制不同级别的存储和访问存储的管理机制。集群管理员(cluster-admin
)或者存储管理员(storage-admin
)可以在无需了解底层存储卷资源的情况下,定义并创建用户可以请求的 StorageClass 对象。
OpenShift Container Platform 的持久性卷框架启用了这个功能,并允许管理员为集群提供持久性存储。该框架还可让用户在不了解底层存储架构的情况下请求这些资源。
很多存储类型都可用于 OpenShift Container Platform 中的持久性卷。虽然它们都可以由管理员静态置备,但有些类型的存储是使用内置供应商和插件 API 动态创建的。
8.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,它基于卷模式
块
的 Ceph RBD -
创建一个具有 ReadWriteOnce (RWO) 访问权限的 PVC,它基于卷模式
Filesystem
的 Ceph RBD -
为卷模式
Filesystem
创建基于 CephFS 的 ReadWriteOnce (RWO) 和 ReadWriteMany (RWX) 访问的 PVC
判断要使用的驱动程序(RBD 或 CephFS)取决于 storageclass.yaml
文件中的条目。
8.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 |
|
任何选择的置备程序插件还需要根据相关文档为相关的云、主机或者第三方供应商配置。