16.2. Red Hat Quay の復元
この手順は、Red Hat Quay Operator がデータベースを管理する際に Red Hat Quay を復元するために使用されます。これは、Red Hat Quay レジストリーをバックアップした後に実行する必要があります。詳細は、Red Hat Quay のバックアップ を参照してください。
前提条件
- Red Hat Quay が、Red Hat Quay Operator を使用して OpenShift Container Platform にデプロイされている。
- Red Hat Quay Operator によって管理される Red Hat Quay 設定のバックアップが、Red Hat Quay のバックアップ セクションの手順に従って作成されている。
- Red Hat Quay データベースがバックアップされている。
- Red Hat Quay で使用されるオブジェクトストレージバケットがバックアップされている。
-
コンポーネント
quay
、postgres
、およびobjectstorage
がmanaged: true
に設定されている。 -
コンポーネント
clair
がmanaged: true
に設定されている場合は、コンポーネントclairpostgres
もmanaged: true
に設定されている (Red Hat Quay Operator v3.7 以降で開始)。 - OpenShift Container Platform クラスターのターゲット namespace で、Red Hat Quay Operator に管理される Red Hat Quay デプロイメントを実行していない。
デプロイメントに部分的に管理されていないデータベースまたはストレージコンポーネントが含まれ、Postgres または S3 互換オブジェクトストレージの外部サービスを使用している場合に、Red Hat Quay デプロイメントを実行するには、サービスプロバイダーまたはベンダーのドキュメントを参照して、Red Hat Quay を複弁する前にバックアップからデータを復元してください。
16.2.1. バックアップからの Red Hat Quay およびその設定の復元 リンクのコピーリンクがクリップボードにコピーされました!
これらの手順では、Red Hat Quay のバックアップ ガイドのプロセスに従い、同じ名前のバックアップファイルを作成していることを前提としています。
バックアップされた Red Hat Quay 設定と生成されたキーをバックアップから復元します。
oc create -f ./config-bundle.yaml oc create -f ./managed-secret-keys.yaml
$ oc create -f ./config-bundle.yaml $ oc create -f ./managed-secret-keys.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要エラー
Error from server (AlreadyExists): error when creating "./config-bundle.yaml": secrets "config-bundle-secret" already exists
が発生した場合は、$ oc delete Secret config-bundle-secret -n <quay-namespace>
を使用して既存リソースを削除し、$ oc create -f ./config-bundle.yaml
で再作成する必要があります。QuayRegistry
カスタムリソースを復元します。oc create -f ./quay-registry.yaml
$ oc create -f ./quay-registry.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay デプロイメントのステータスを確認し、これが利用可能になるまで待機します。
oc wait quayregistry registry --for=condition=Available=true -n <quay-namespace>
$ oc wait quayregistry registry --for=condition=Available=true -n <quay-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.2. Red Hat Quay デプロイメントのスケールダウン リンクのコピーリンクがクリップボードにコピーされました!
Operator バージョン 3.7 以降: Red Hat Quay の自動スケーリングを無効にし、Red Hat Quay、ミラーワーカー、および Clair (マネージドの場合) のレプリカ数をオーバーライドすることで Quay デプロイメントを縮小します。
QuayRegistry
リソースは、以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator バージョン 3.6 以前: まず Red Hat Quay Operator をスケールダウンしてから、マネージドの Red Hat Quay リソースをスケールダウンして Red Hat Quay デプロイメントを縮小します。
oc scale --replicas=0 deployment $(oc get deployment -n <quay-operator-namespace>|awk '/^quay-operator/ {print $1}') -n <quay-operator-namespace> oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/quay-app/ {print $1}') -n <quay-namespace> oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/quay-mirror/ {print $1}') -n <quay-namespace> oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/clair-app/ {print $1}') -n <quay-namespace>
$ oc scale --replicas=0 deployment $(oc get deployment -n <quay-operator-namespace>|awk '/^quay-operator/ {print $1}') -n <quay-operator-namespace> $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/quay-app/ {print $1}') -n <quay-namespace> $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/quay-mirror/ {print $1}') -n <quay-namespace> $ oc scale --replicas=0 deployment $(oc get deployment -n <quay-namespace>|awk '/clair-app/ {print $1}') -n <quay-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow registry-quay-app
、registry-quay-mirror
、およびregistry-clair-app
Pod (どのコンポーネントを Operator のマネージドとして設定したかにより異なります) が非表示になるまで待機します。以下のコマンドを実行してステータスを確認できます。oc get pods -n <quay-namespace>
$ oc get pods -n <quay-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
registry-quay-config-editor-77847fc4f5-nsbbv 1/1 Running 0 9m1s registry-quay-database-66969cd859-n2ssm 1/1 Running 0 6d1h registry-quay-redis-7cc5f6c977-956g8 1/1 Running 0 5d21h
registry-quay-config-editor-77847fc4f5-nsbbv 1/1 Running 0 9m1s registry-quay-database-66969cd859-n2ssm 1/1 Running 0 6d1h registry-quay-redis-7cc5f6c977-956g8 1/1 Running 0 5d21h
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.3. Red Hat Quay データベースの復元 リンクのコピーリンクがクリップボードにコピーされました!
Quay データベース Pod を特定します。
oc get pod -l quay-component=postgres -n <quay-namespace> -o jsonpath='{.items[0].metadata.name}'
$ oc get pod -l quay-component=postgres -n <quay-namespace> -o jsonpath='{.items[0].metadata.name}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
quayregistry-quay-database-59f54bb7-58xs7
quayregistry-quay-database-59f54bb7-58xs7
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ローカル環境および Pod にコピーして、バックアップをアップロードします。
oc cp ./backup.sql -n <quay-namespace> registry-quay-database-66969cd859-n2ssm:/tmp/backup.sql
$ oc cp ./backup.sql -n <quay-namespace> registry-quay-database-66969cd859-n2ssm:/tmp/backup.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースに対してリモートターミナルを開きます。
oc rsh -n <quay-namespace> registry-quay-database-66969cd859-n2ssm
$ oc rsh -n <quay-namespace> registry-quay-database-66969cd859-n2ssm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow psql を入力します。
bash-4.4$ psql
bash-4.4$ psql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してデータベースを一覧表示できます。
postgres=# \l
postgres=# \l
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------------------+----------------------------+----------+------------+------------+----------------------- postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 | quayregistry-quay-database | quayregistry-quay-database | UTF8 | en_US.utf8 | en_US.utf8 |
List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------------------+----------------------------+----------+------------+------------+----------------------- postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 | quayregistry-quay-database | quayregistry-quay-database | UTF8 | en_US.utf8 | en_US.utf8 |
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースを削除します。
postgres=# DROP DATABASE "quayregistry-quay-database";
postgres=# DROP DATABASE "quayregistry-quay-database";
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
DROP DATABASE
DROP DATABASE
Copy to Clipboard Copied! Toggle word wrap Toggle overflow postgres CLI を終了して bash-4.4 を再入力します。
\q
\q
Copy to Clipboard Copied! Toggle word wrap Toggle overflow PostgreSQL データベースをバックアップデータベースにリダイレクトします。
psql < /tmp/backup.sql
sh-4.4$ psql < /tmp/backup.sql
Copy to Clipboard Copied! Toggle word wrap Toggle overflow bash を終了します。
exit
sh-4.4$ exit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.4. Red Hat Quay オブジェクトストレージデータの復元 リンクのコピーリンクがクリップボードにコピーされました!
AWS_ACCESS_KEY_ID
をエクスポートします。export AWS_ACCESS_KEY_ID=$(oc get secret -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.AWS_ACCESS_KEY_ID}' |base64 -d)
$ export AWS_ACCESS_KEY_ID=$(oc get secret -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.AWS_ACCESS_KEY_ID}' |base64 -d)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow AWS_SECRET_ACCESS_KEY
をエクスポートします。export AWS_SECRET_ACCESS_KEY=$(oc get secret -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.AWS_SECRET_ACCESS_KEY}' |base64 -d)
$ export AWS_SECRET_ACCESS_KEY=$(oc get secret -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.AWS_SECRET_ACCESS_KEY}' |base64 -d)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して、すべての Blob をバケットにアップロードします。
aws s3 sync --no-verify-ssl --endpoint https://$(oc get route s3 -n openshift-storage -o jsonpath='{.spec.host}') ./blobs s3://$(oc get cm -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.BUCKET_NAME}')
$ aws s3 sync --no-verify-ssl --endpoint https://$(oc get route s3 -n openshift-storage -o jsonpath='{.spec.host}') ./blobs s3://$(oc get cm -l app=noobaa -n <quay-namespace> -o jsonpath='{.items[0].data.BUCKET_NAME}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
16.2.5. Red Hat Quay デプロイメントのスケールアップ リンクのコピーリンクがクリップボードにコピーされました!
Operator バージョン 3.7 以降: 自動スケーリングを再度有効にし、必要な場合は Quay、ミラーワーカー、および Clair のレプリカオーバーライドを適宜削除して、Red Hat Quay デプロイメントをスケールアップします。
QuayRegistry
リソースは、以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator バージョン 3.6 以前の場合: Red Hat Quay Operator を再度スケールアップして Red Hat Quay デプロイメントをスケールアップします。
oc scale --replicas=1 deployment $(oc get deployment -n <quay-operator-namespace> | awk '/^quay-operator/ {print $1}') -n <quay-operator-namespace>
$ oc scale --replicas=1 deployment $(oc get deployment -n <quay-operator-namespace> | awk '/^quay-operator/ {print $1}') -n <quay-operator-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Quay デプロイメントのステータスを確認します。
oc wait quayregistry registry --for=condition=Available=true -n <quay-namespace>
$ oc wait quayregistry registry --for=condition=Available=true -n <quay-namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow