第4章 OpenShift Container Platform サービスのストレージの設定
OpenShift Data Foundation を使用して、イメージレジストリー、モニタリング、およびロギングなどの OpenShift Container Platform サービスのストレージを提供できます。
これらのサービスのストレージを設定するプロセスは、OpenShift Data Foundation デプロイメントで使用されるインフラストラクチャーによって異なります。
これらのサービスに十分なストレージ容量があることを常に確認してください。これらの重要なサービスのストレージ領域が不足すると、クラスターは動作しなくなり、復元が非常に困難になります。
Red Hat は、これらのサービスのキュレーションおよび保持期間を短く設定することを推奨します。詳細は、OpenShift Container Platform ドキュメントのMonitoringの Configuring the Curator schedule と Modifying retention time for Prometheus metrics data を参照してください。
これらのサービスのストレージ領域が不足する場合は、Red Hat カスタマーサポートにお問い合わせください。
4.1. OpenShift Data Foundation を使用するためのイメージレジストリーの設定
OpenShift Container Platform は、クラスターで標準ワークロードとして実行される、組み込まれたコンテナーイメージレジストリーを提供します。通常、レジストリーはクラスター上にビルドされたイメージの公開ターゲットとして、またクラスター上で実行されるワークロードのイメージのソースとして使用されます。
OpenShift Container Plaform 4.11 以降、オブジェクトストレージがイメージレジストリーの設定に推奨されるバックエンドストレージです。
このセクションの手順に従って、OpenShift Data Foundation をコンテナーイメージレジストリーのストレージとして設定します。AWS では、レジストリーのストレージを変更する必要はありません。ただし vSphere およびベアメタルプラットフォームの場合は、OpenShift Data Foundation 永続ボリュームに対してストレージを変更することが推奨されます。
このプロセスでは、データを既存イメージレジストリーから新規イメージレジストリーに移行しません。既存のレジストリーにコンテナーイメージがある場合、このプロセスを完了する前にレジストリーのバックアップを作成し、このプロセスの完了時にイメージを再登録します。
4.1.1. OpenShift イメージレジストリーのバックエンドストレージとしての Multicloud Object Gateway の設定
Multicloud Object Gateway (MCG)は、OpenShift Container Platform バージョン 4.11 以降のオンプレミス OpenShift デプロイメントで OpenShift イメージレジストリーバックエンドストレージとして使用できます。
前提条件
- OpenShift Web コンソールへの管理者アクセス。
- MCG を使用して実行中の OpenShift Data Foundation クラスター。
手順
-
オブジェクトバケット要求の作成 の手順に従って、
ObjectBucketClaim
を作成します。 image-registry-private-configuration-user
シークレットを作成します。- OpenShift web-console に移動します。
-
ObjectBucketClaim
ObjectBucketClaim Data をクリックします。 -
ObjectBucketClaim データ で、
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
4.1.2. OpenShift イメージレジストリーのバックエンドストレージとしての OpenShift Data Foundation CephFS の設定
前提条件
- OpenShift Web コンソールへの管理者アクセスがある。
-
OpenShift Data Foundation Operator が
openshift-storage
namespace にインストールされ、実行されている。OpenShift Web Console で、OperatorsInstalled Operators をクリックしてインストールされた Operator を表示します。 -
イメージレジストリー Operator が
openshift-image-registry
namespace にインストールされ、実行されている。OpenShift Web コンソールで、AdministrationCluster Settings Cluster Operators をクリックしてクラスター Operator を表示します。 -
プロビジョナー
openshift-storage.cephfs.csi.ceph.com
を持つストレージクラスが利用可能である。OpenShift Web コンソールで、StorageStorageClasses をクリックし、利用可能なストレージクラスを表示します。
手順
使用するイメージレジストリーの Persistent Volume Claim(永続ボリューム要求、PVC) を作成します。
-
OpenShift Web コンソールで、Storage
Persistent Volume Claims をクリックします。 -
Project を
openshift-image-registry
に設定します。 Create Persistent Volume Claim をクリックします。
-
上記で取得した利用可能なストレージクラスリストから、プロビジョナー
openshift-storage.cephfs.csi.ceph.com
で Storage Class を指定します。 -
Persistent Volume Claim(永続ボリューム要求、PVC) の Name を指定します (例:
ocs4registry
)。 -
Shared Access (RWX)
の Access Mode を指定します。 - 100 GB 以上の Size を指定します。
Create をクリックします。
新規 Persistent Volume Claim(永続ボリューム要求、PVC) のステータスが
Bound
としてリスト表示されるまで待機します。
-
上記で取得した利用可能なストレージクラスリストから、プロビジョナー
-
OpenShift Web コンソールで、Storage
クラスターのイメージレジストリーを、新規の Persistent Volume Claim(永続ボリューム要求、PVC) を使用するように設定します。
-
Administration
Custom Resource Definitions をクリックします。 -
imageregistry.operator.openshift.io
グループに関連付けられたConfig
カスタムリソース定義をクリックします。 - Instances タブをクリックします。
-
クラスターインスタンスの横にある Action メニュー (⋮)
Edit Config をクリックします。 イメージレジストリーの新規 Persistent Volume Claim(永続ボリューム要求、PVC) を追加します。
以下を
spec:
の下に追加し、必要に応じて既存のstorage:
セクションを置き換えます。storage: pvc: claim: <new-pvc-name>
以下に例を示します。
storage: pvc: claim: ocs4registry
- Save をクリックします。
-
Administration
新しい設定が使用されていることを確認します。
-
Workloads
Pods をクリックします。 -
Project を
openshift-image-registry
に設定します。 -
新規
image-registry-*
Pod がRunning
のステータスと共に表示され、以前のimage-registry-*
Pod が終了していることを確認します。 -
新規の
image-registry-*
Pod をクリックし、Pod の詳細を表示します。 -
Volumes までスクロールダウンし、
registry-storage
ボリュームに新規 Persistent Volume Claim (永続ボリューム要求、PVC) に一致する Type があることを確認します (例:ocs4registry
)。
-
Workloads