3.9. Nutanix 用レジストリーの設定
このドキュメントで説明されている手順に従うことで、ユーザーはコンテナーイメージの配布、セキュリティー、およびアクセス制御を最適化し、OpenShift Container Platform 上で Nutanix アプリケーションの堅牢な基盤を実現できます。
3.9.1. インストール時に削除されたイメージレジストリー リンクのコピーリンクがクリップボードにコピーされました!
共有可能なオブジェクトストレージを提供しないプラットフォームでは、OpenShift Image Registry Operator 自体が Removed としてブートストラップされます。これにより、openshift-installer がそれらのプラットフォームタイプでのインストールを完了できます。
インストール後に、Image Registry Operator 設定を編集して managementState を Removed から Managed に切り替える必要があります。これが完了したら、ストレージを設定する必要があります。
3.9.2. イメージレジストリーの管理状態の変更 リンクのコピーリンクがクリップボードにコピーされました!
イメージレジストリーを起動するには、Image Registry Operator 設定の managementState を Removed から Managed に変更する必要があります。
手順
managementStateImage Registry Operator 設定をRemovedからManagedに変更します。以下に例を示します。oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"managementState":"Managed"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9.3. イメージレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Image Registry Operator は、デフォルトストレージを提供しないプラットフォームでは最初は利用できません。インストール後に、レジストリー Operator を使用できるようにレジストリーをストレージを使用するように設定する必要があります。
実稼働クラスターに必要な永続ボリュームの設定に関する手順が示されます。該当する場合、空のディレクトリーをストレージの場所として設定する方法が表示されます。これは、実稼働以外のクラスターでのみ利用できます。
アップグレード時に Recreate ロールアウトストラテジーを使用して、イメージレジストリーがブロックストレージタイプを使用することを許可するための追加の手順が提供されます。
3.9.3.1. Nutanix 用レジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - Nutanix にクラスターがある。
Red Hat OpenShift Data Foundation などのクラスターのプロビジョニングされた永続ストレージがある。
重要OpenShift Container Platform は、1 つのレプリカのみが存在する場合にイメージレジストリーストレージの
ReadWriteOnceアクセスをサポートします。ReadWriteOnceアクセスでは、レジストリーがRecreateロールアウト戦略を使用する必要もあります。2 つ以上のレプリカで高可用性をサポートするイメージレジストリーをデプロイするには、ReadWriteManyアクセスが必要です。- 100 Gi の容量がある。
手順
レジストリーをストレージを使用できるように設定するには、
configs.imageregistry/clusterリソースのspec.storage.pvcを変更します。注記共有ストレージを使用する場合は、外部からアクセスを防ぐためにセキュリティー設定を確認します。
レジストリー Pod がないことを確認します。
oc get pod -n openshift-image-registry -l docker-registry=default
$ oc get pod -n openshift-image-registry -l docker-registry=defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No resourses found in openshift-image-registry namespace
No resourses found in openshift-image-registry namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記出力にレジストリー Pod がある場合は、この手順を続行する必要はありません。
レジストリー設定を確認します。
oc edit configs.imageregistry.operator.openshift.io
$ oc edit configs.imageregistry.operator.openshift.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
storage: pvc: claim:storage: pvc: claim:1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
image-registry-storage永続ボリューム要求 (PVC) の自動作成を許可するには、claimフィールドを空白のままにします。PVC は、デフォルトのストレージクラスに基づいて生成されます。ただし、デフォルトのストレージクラスは、RADOS ブロックデバイス (RBD) などの ReadWriteOnce (RWO) ボリュームを提供する可能性があることに注意してください。これは、複数のレプリカに複製するときに問題を引き起こす可能性があります。
clusteroperatorステータスを確認します。oc get clusteroperator image-registry
$ oc get clusteroperator image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE image-registry 4.13 True False False 6h50m
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE image-registry 4.13 True False False 6h50mCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9.3.2. 実稼働以外のクラスターでのイメージレジストリーのストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Image Registry Operator のストレージを設定する必要があります。実稼働用以外のクラスターの場合、イメージレジストリーは空のディレクトリーに設定することができます。これを実行する場合、レジストリーを再起動するとすべてのイメージが失われます。
手順
イメージレジストリーストレージを空のディレクトリーに設定するには、以下を実行します。
oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'$ oc patch configs.imageregistry.operator.openshift.io cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 警告実稼働用以外のクラスターにのみこのオプションを設定します。
Image Registry Operator がそのコンポーネントを初期化する前にこのコマンドを実行する場合、
oc patchコマンドは以下のエラーを出して失敗します。Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not found
Error from server (NotFound): configs.imageregistry.operator.openshift.io "cluster" not foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow 数分待機した後に、このコマンドを再び実行します。
3.9.3.3. Nutanix ボリューム用ブロックレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
アップグレード時にイメージレジストリーがクラスター管理者として Nutanix ボリュームなどのブロックストレージタイプを使用できるようにするには、Recreate ロールアウトストラテジーを使用します。
ブロックストレージボリューム (または永続ボリューム) はサポートされますが、実稼働クラスターでのイメージレジストリーと併用することは推奨されません。レジストリーに複数のレプリカを含めることができないため、ブロックストレージにレジストリーが設定されているインストールに高可用性はありません。
イメージレジストリーでブロックストレージボリュームを使用することを選択した場合は、ファイルシステムの persistent volume claim (PVC) を使用する必要があります。
手順
次のコマンドを入力してイメージレジストリーストレージをブロックストレージタイプとして設定し、レジストリーにパッチを適用して
Recreateロールアウトストラテジーを使用し、1 つの (1) レプリカのみで実行されるようにします。oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'$ oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow ブロックストレージデバイスの PV をプロビジョニングし、そのボリュームの PVC を作成します。要求されたブロックボリュームは ReadWriteOnce (RWO) アクセスモードを使用します。
以下の内容で
pvc.yamlファイルを作成して、NutanixPersistentVolumeClaimオブジェクトを定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ファイルから
PersistentVolumeClaimオブジェクトを作成します。oc create -f pvc.yaml -n openshift-image-registry
$ oc create -f pvc.yaml -n openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを入力して、正しい PVC を参照するようにレジストリー設定を編集します。
oc edit config.imageregistry.operator.openshift.io -o yaml
$ oc edit config.imageregistry.operator.openshift.io -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
storage: pvc: claim:storage: pvc: claim:1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- カスタム PVC を作成することにより、
image-registry-storagePVC のデフォルトの自動作成のclaimフィールドを空のままにできます。
3.9.3.4. Red Hat OpenShift Data Foundation で Ceph RGW ストレージを使用するための Image Registry Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Data Foundation は、OpenShift イメージレジストリーで使用できる複数のストレージタイプを統合します。
- Ceph、共有および分散ファイルシステムとオンプレミスオブジェクトストレージ
- NooBaa。Multicloud Object Gateway を提供します。
このドキュメントでは、Ceph RGW ストレージを使用するようにイメージレジストリーを設定する手順の概要を説明します。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
-
ocCLI がインストールされている。 - オブジェクトストレージおよび Ceph RGW オブジェクトストレージを提供するために OpenShift Data Foundation Operator をインストールした。
手順
ocs-storagecluster-ceph-rgwストレージクラスを使用してオブジェクトバケットクレームを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- あるいは、
openshift-image-registrynamespace を使用することもできます。
次のコマンドを入力して、バケット名を取得します。
bucket_name=$(oc get obc -n openshift-storage rgwbucket -o jsonpath='{.spec.bucketName}')$ bucket_name=$(oc get obc -n openshift-storage rgwbucket -o jsonpath='{.spec.bucketName}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、AWS 認証情報を取得します。
AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage rgwbucket -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 --decode)$ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage rgwbucket -o jsonpath='{.data.AWS_ACCESS_KEY_ID}' | base64 --decode)Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage rgwbucket -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 --decode)$ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage rgwbucket -o jsonpath='{.data.AWS_SECRET_ACCESS_KEY}' | base64 --decode)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
openshift-image-registry プロジェクトの下にある新しいバケットの AWS 認証情報を使用して、秘密のimage-registry-private-configuration-userを作成します。oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
routeホストを取得します。route_host=$(oc get route ocs-storagecluster-cephobjectstore -n openshift-storage --template='{{ .spec.host }}')$ route_host=$(oc get route ocs-storagecluster-cephobjectstore -n openshift-storage --template='{{ .spec.host }}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、入力証明書を使用する設定マップを作成します。
oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirm
$ oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-config
$ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Ceph RGW オブジェクトストレージを使用するようにイメージレジストリーを設定します。
oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9.3.5. Red Hat OpenShift Data Foundation で Noobaa ストレージを使用するための Image Registry Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Data Foundation は、OpenShift イメージレジストリーで使用できる複数のストレージタイプを統合します。
- Ceph、共有および分散ファイルシステムとオンプレミスオブジェクトストレージ
- NooBaa。Multicloud Object Gateway を提供します。
このドキュメントでは、Noobaa ストレージを使用するようにイメージレジストリーを設定する手順の概要を説明します。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
-
ocCLI がインストールされている。 - OpenShift Data Foundation Operator をインストールして、オブジェクトストレージと Noobaa オブジェクトストレージを提供した。
手順
openshift-storage.noobaa.ioストレージクラスを使用してオブジェクトバケットクレームを作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- あるいは、
openshift-image-registrynamespace を使用することもできます。
次のコマンドを入力して、バケット名を取得します。
bucket_name=$(oc get obc -n openshift-storage noobaatest -o jsonpath='{.spec.bucketName}')$ bucket_name=$(oc get obc -n openshift-storage noobaatest -o jsonpath='{.spec.bucketName}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、AWS 認証情報を取得します。
AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)$ AWS_ACCESS_KEY_ID=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_ACCESS_KEY_ID:" | head -n1 | awk '{print $2}' | base64 --decode)Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)$ AWS_SECRET_ACCESS_KEY=$(oc get secret -n openshift-storage noobaatest -o yaml | grep -w "AWS_SECRET_ACCESS_KEY:" | head -n1 | awk '{print $2}' | base64 --decode)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、
openshift-image-registry プロジェクトの下にある新しいバケットの AWS 認証情報を使用して、秘密のimage-registry-private-configuration-userを作成します。oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registry$ oc create secret generic image-registry-private-configuration-user --from-literal=REGISTRY_STORAGE_S3_ACCESSKEY=${AWS_ACCESS_KEY_ID} --from-literal=REGISTRY_STORAGE_S3_SECRETKEY=${AWS_SECRET_ACCESS_KEY} --namespace openshift-image-registryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、ルートホストを取得します。
route_host=$(oc get route s3 -n openshift-storage -o=jsonpath='{.spec.host}')$ route_host=$(oc get route s3 -n openshift-storage -o=jsonpath='{.spec.host}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、入力証明書を使用する設定マップを作成します。
oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirm
$ oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirmCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-config
$ oc create configmap image-registry-s3-bundle --from-file=ca-bundle.crt=./tls.crt -n openshift-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、Nooba オブジェクトストレージを使用するようにイメージレジストリーを設定します。
oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=merge$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","s3":{"bucket":'\"${bucket_name}\"',"region":"us-east-1","regionEndpoint":'\"https://${route_host}\"',"virtualHostedStyle":false,"encrypt":false,"trustedCA":{"name":"image-registry-s3-bundle"}}}}}' --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.9.4. Red Hat OpenShift Data Foundation で CephFS ストレージを使用するための Image Registry Operator の設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Data Foundation は、OpenShift イメージレジストリーで使用できる複数のストレージタイプを統合します。
- Ceph、共有および分散ファイルシステムとオンプレミスオブジェクトストレージ
- NooBaa。Multicloud Object Gateway を提供します。
このドキュメントでは、CephFS ストレージを使用するようにイメージレジストリーを設定する手順の概要を説明します。
CephFS は persistent volume claim (PVC) ストレージを使用します。Ceph RGW や Noobaa など、他のオプションが利用可能な場合は、イメージレジストリーストレージに PVC を使用することは推奨しません。
前提条件
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。 - OpenShift Container Platform Web コンソールにアクセスできる。
-
ocCLI がインストールされている。 - オブジェクトストレージと CephFS ファイルストレージを提供するために、OpenShift Data Foundation Operator をインストールした。
手順
cephfsストレージクラスを使用する PVC を作成します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、CephFS ファイルシステムストレージを使用するようにイメージレジストリーを設定します。
oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","pvc":{"claim":"registry-storage-pvc"}}}}' --type=merge$ oc patch config.image/cluster -p '{"spec":{"managementState":"Managed","replicas":2,"storage":{"managementState":"Unmanaged","pvc":{"claim":"registry-storage-pvc"}}}}' --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow