4.2. Multicloud Object Gateway を OpenShift Image Registry バックエンドストレージとして使用する
オンプレミスの OpenShift デプロイメントでは、Multicloud Object Gateway (MCG) を OpenShift Container Platform (OCP) Image Registry バックエンドストレージとして使用できます。
MCG を OCP イメージレジストリーのバックエンドストレージとして設定するには、手順に記載されている手順に従います。
前提条件
- OCP Web コンソールへの管理アクセス。
- MCG を使用して実行中の OpenShift Data Foundation クラスター。
手順
-
オブジェクトバケット要求の作成 の手順に従って、
ObjectBucketClaim
を作成します。 image-registry-private-configuration-user
シークレットを作成します。- OpenShift web-console に移動します。
-
ObjectBucketClaim
ObjectBucketClaim Data をクリックします。 -
ObjectBucketClaim data の
openshift-image-registry namespace
でMCG access key
とMCG secret key
を探します。 次のコマンドを使用してシークレットを作成します。
$ 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
とRegionalEndpoint
を取得する、または 次のコマンドから regionEndpoint と unique-bucket-name に関する情報を取得することもできます。$ oc describe noobaa
以下の場合は、
regionEndpoint
を http://<Endpoint-name>:<port> として追加します。-
StorageClass が
ceph-rgw
storageclass、および - エンドポイントが、openshift-storage namespace からの内部 SVC を指している。
-
StorageClass が
Operator レジストリー設定ファイルに変更を加えた後、
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
イメージレジストリー設定をデフォルトにリセットします。
$ 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