3.2.2. 受管存储
如果您希望 Operator 为 Quay 管理对象存储,您的集群需要能够通过 ObjectBucketClaim
API 提供对象存储。使用 Red Hat OpenShift Data Foundation(ODF)Operator,有两个支持的选项:
由本地 Kubernetes
PersistentVolume
存储支持的 Multi-Cloud Object Gateway 的独立实例- 不可用
- 包括在 Quay 订阅中
- 不需要单独订阅 ODF
具有横向扩展对象服务和 Ceph 的生产部署 ODF
- 高可用性
- 为 ODF 需要单独订阅
要使用独立实例选项,请继续阅读以下内容。有关 ODF 的生产部署,请参考 官方文档。
Operator 使用 50 GiB 自动分配对象存储磁盘空间。此数字代表在大中型 Red Hat Quay 安装中的可用存储量,但可能不适用于您的用例。重新定义 RHOCS 卷大小目前没有被 Operator 处理。如需了解更多详细信息,请参阅调整受管存储的大小部分。
3.2.2.1. 关于单机对象网关
作为 Red Hat Quay 订阅的一部分,用户有权使用 Red Hat OpenShift Data Foundation Operator 的 Multi-Cloud Object Gateway (MCG)组件(以前称为 OpenShift Container Storage Operator)。此网关组件允许您为基于 Kubernetes PersistentVolume
的块存储存储接口提供 S3 兼容对象存储接口。其用法仅限于由 Operator 管理的 Quay 部署,以及 MCG 实例的确切规格,如下所示。
由于 Red Hat Quay 不支持本地文件系统存储,因此用户可以将网关与 Kubernetes PersistentVolume
结合使用,以提供受支持的部署。PersistentVolume
直接挂载到网关实例上,作为对象存储的后备存储,并且支持任何基于块的 StorageClass
。
由于 PersistentVolume
的性质,这不是横向扩展、高度可用的解决方案,并不取代 Red Hat OpenShift Data Foundation(ODF)等横向扩展存储系统。只有网关的单一实例正在运行。如果运行网关的 pod 因重新调度、更新或计划外停机而不可用,则会导致连接的 Quay 实例临时降级。
3.2.2.1.1. 创建独立对象网关
要安装 ODF(以前称为 OpenShift Container Storage)Operator 并配置单个实例多云网关服务,请按照以下步骤操作:
-
打开 OpenShift 控制台并选择 Operators
OperatorHub,然后选择 OpenShift Data Foundation Operator。 - 选择 Install。接受所有默认选项,然后再次选择 Install。
在一分钟内,Operator 将安装并创建命名空间
openshift-storage
。当Status
列标记为Succeeded
时,您可以确认它已完成。When the installation of the ODF Operator is complete, you are prompted to create a storage system. Do not follow this instruction. Instead, create NooBaa object storage as outlined the following steps.
创建 NooBaa 对象存储。将以下 YAML 保存到名为
noobaa.yaml
的文件。apiVersion: noobaa.io/v1alpha1 kind: NooBaa metadata: name: noobaa namespace: openshift-storage spec: dbResources: requests: cpu: '0.1' memory: 1Gi dbType: postgres coreResources: requests: cpu: '0.1' memory: 1Gi
这将创建 多云对象网关 的单一实例部署。
使用以下命令应用配置:
$ oc create -n openshift-storage -f noobaa.yaml noobaa.noobaa.io/noobaa created
几分钟后,您应该会看到 MCG 实例已完成置备(PAS
E
列将设置为Ready
):$ oc get -n openshift-storage noobaas noobaa -w NAME MGMT-ENDPOINTS S3-ENDPOINTS IMAGE PHASE AGE noobaa [https://10.0.32.3:30318] [https://10.0.32.3:31958] registry.redhat.io/ocs4/mcg-core-rhel8@sha256:56624aa7dd4ca178c1887343c7445a9425a841600b1309f6deace37ce6b8678d Ready 3d18h
接下来,为网关配置后备存储。将以下 YAML 保存到名为
noobaa-pv-backing-store.yaml
的文件。noobaa-pv-backing-store.yaml
apiVersion: noobaa.io/v1alpha1 kind: BackingStore metadata: finalizers: - noobaa.io/finalizer labels: app: noobaa name: noobaa-pv-backing-store namespace: openshift-storage spec: pvPool: numVolumes: 1 resources: requests: storage: 50Gi 1 storageClass: STORAGE-CLASS-NAME 2 type: pv-pool
使用以下命令应用配置:
$ oc create -f noobaa-pv-backing-store.yaml backingstore.noobaa.io/noobaa-pv-backing-store created
这会为网关创建后备存储配置。Quay 中的所有镜像将通过网关在上述配置创建的
PersistentVolume
中存储为对象。最后,运行以下命令,使
PersistentVolume
存储 Operator 发布的所有ObjectBucketClaims
的默认设置。$ oc patch bucketclass noobaa-default-bucket-class --patch '{"spec":{"placementPolicy":{"tiers":[{"backingStores":["noobaa-pv-backing-store"]}]}}}' --type merge -n openshift-storage
为 Red Hat Quay 设置 Multi-Cloud Object Gateway 实例的流程。请注意,这个配置不能在安装 Red Hat OpenShift Data Foundation 的集群中并行运行。