4.2. 使用 Multicloud 对象网关作为 OpenShift Image Registry 后端存储
您可以在 on-prem OpenShift 部署中使用 Multicloud Object Gateway (MCG)作为 OpenShift Container Platform (OCP) Image Registry 后端存储。
要将 MCG 配置为 OCP 镜像 registry 的后端存储,请按照流程中介绍的步骤操作。
先决条件
- OCP Web 控制台的管理访问权限.
- 使用 MCG 运行 OpenShift Data Foundation 集群。
流程
-
按照 Creating Object Bucket Claim 中的步骤创建
ObjectBucketClaim
。 创建
image-registry-private-configuration-user
secret。- 进入 OpenShift web-console。
- 点 ObjectBucketClaim -→ ObjectBucketClaim Data。
-
在 ObjectBucketClaim 数据 中,在
openshift-image-registry namespace
中查找MCG access key
和MCG secret key
。 使用以下命令创建 secret:
$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=<MCG Accesskey> --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=<MCG Secretkey> --namespace openshift-image-registry
将 Image Registry Operator 的
managementState
改为 Managed。$ oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec": {"managementState": "Managed"}}'
编辑 Image Registry Operator 配置文件的
spec.storage
部分:从 Web 控制台获取 Object Bucket Claim Data 部分下的
unique-bucket-name
和regionEndpoint
,或者也可以使用以下命令获取 regionEndpoint 和 unique-bucket-name 的信息:$ oc describe noobaa
将
regionEndpoint
添加为 http://<Endpoint-name>:<port> 如果-
StorageClass 是
ceph-rgw
存储类, - 端点指向来自 openshift-storage 命名空间中的内部 SVC。
-
StorageClass 是
在对 Operator registry 配置文件进行更改后,
image-registry
pod 会生成。$ oc edit configs.imageregistry.operator.openshift.io -n openshift-image-registry apiVersion: imageregistry.operator.openshift.io/v1 kind: Config metadata: [..] name: cluster spec: [..] storage: s3: bucket: <Unique-bucket-name> region: us-east-1 (Use this region as default) regionEndpoint: https://<Endpoint-name>:<port> virtualHostedStyle: false
将镜像 registry 设置重置为默认值。
$ oc get pods -n openshift-image-registry
验证步骤
运行以下命令检查是否成功将 MCG 配置为 OpenShift Image Registry 后端存储。
$ oc get pods -n openshift-image-registry
输出示例
$ oc get pods -n openshift-image-registry NAME READY STATUS RESTARTS AGE cluster-image-registry-operator-56d78bc5fb-bxcgv 2/2 Running 0 44d image-pruner-1605830400-29r7k 0/1 Completed 0 10h image-registry-b6c8f4596-ln88h 1/1 Running 0 17d node-ca-2nxvz 1/1 Running 0 44d node-ca-dtwjd 1/1 Running 0 44d node-ca-h92rj 1/1 Running 0 44d node-ca-k9bkd 1/1 Running 0 44d node-ca-stkzc 1/1 Running 0 44d node-ca-xn8h4 1/1 Running 0 44d
(可选)您也可以运行以下命令来验证是否将 MCG 配置为 OpenShift Image Registry 后端存储。
$ oc describe pod <image-registry-name>
输出示例
$ oc describe pod image-registry-b6c8f4596-ln88h Environment: REGISTRY_STORAGE_S3_REGIONENDPOINT: http://s3.openshift-storage.svc REGISTRY_STORAGE: s3 REGISTRY_STORAGE_S3_BUCKET: bucket-registry-mcg REGISTRY_STORAGE_S3_REGION: us-east-1 REGISTRY_STORAGE_S3_ENCRYPT: true REGISTRY_STORAGE_S3_VIRTUALHOSTEDSTYLE: false REGISTRY_STORAGE_S3_USEDUALSTACK: true REGISTRY_STORAGE_S3_ACCESSKEY: <set to the key 'REGISTRY_STORAGE_S3_ACCESSKEY' in secret 'image-registry-private-configuration'> Optional: false REGISTRY_STORAGE_S3_SECRETKEY: <set to the key 'REGISTRY_STORAGE_S3_SECRETKEY' in secret 'image-registry-private-configuration'> Optional: false REGISTRY_HTTP_ADDR: :5000 REGISTRY_HTTP_NET: tcp REGISTRY_HTTP_SECRET: 57b943f691c878e342bac34e657b702bd6ca5488d51f839fecafa918a79a5fc6ed70184cab047601403c1f383e54d458744062dcaaa483816d82408bb56e686f REGISTRY_LOG_LEVEL: info REGISTRY_OPENSHIFT_QUOTA_ENABLED: true REGISTRY_STORAGE_CACHE_BLOBDESCRIPTOR: inmemory REGISTRY_STORAGE_DELETE_ENABLED: true REGISTRY_OPENSHIFT_METRICS_ENABLED: true REGISTRY_OPENSHIFT_SERVER_ADDR: image-registry.openshift-image-registry.svc:5000 REGISTRY_HTTP_TLS_CERTIFICATE: /etc/secrets/tls.crt REGISTRY_HTTP_TLS_KEY: /etc/secrets/tls.key