5.3. Red Hat Quay on OpenShift Container Platform の geo レプリケーションデプロイメントのアップグレード
OpenShift Container Platform デプロイメント上の geo レプリケートされた Red Hat Quay をアップグレードするには、次の手順を使用します。
-
OpenShift Container Platform デプロイメント上の geo レプリケートされた Red Hat Quay を次の y-stream リリース (例: Red Hat Quay 3.7
Red Hat Quay 3.8) にアップグレードする場合は、アップグレードする前に操作を停止する必要があります。 - y-stream リリースを次のリリースにアップグレードする場合は、アップグレード中にダウンタイムが断続的に発生します。
- アップグレードする前に、Red Hat Quay on OpenShift Container Platform デプロイメントをバックアップすることを強く推奨します。
この手順は、3 つ以上のシステムで Red Hat Quay レジストリーを実行していることを前提としています。この手順では、System A、System B、および System C という名前の 3 つのシステムを想定します。System A は、Red Hat Quay Operator がデプロイされるプライマリーシステムとして機能します。
システム B およびシステム C で、Red Hat Quay レジストリーをスケールダウンします。これを行うには、自動スケーリングを無効にし、Red Hat Quay、ミラーワーカー、および Clair (マネージドの場合) のレプリカ数をオーバーライドします。次の
quayregistry.yamlファイルを参照として使用します。apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: registry namespace: ns spec: components: … - kind: horizontalpodautoscaler managed: false1 - kind: quay managed: true overrides:2 replicas: 0 - kind: clair managed: true overrides: replicas: 0 - kind: mirror managed: true overrides: replicas: 0 …注記Red Hat Quay レジストリーがシステム A で実行されている状態を維持する必要があります。システム A の
quayregistry.yamlファイルは更新しないでください。registry-quay-app、registry-quay-mirror、およびregistry-clair-appPod が消えるまで待機します。以下のコマンドを入力してステータスを確認します。oc get pods -n <quay-namespace>出力例
quay-operator.v3.7.1-6f9d859bd-p5ftc 1/1 Running 0 12m quayregistry-clair-postgres-7487f5bd86-xnxpr 1/1 Running 1 (12m ago) 12m quayregistry-quay-app-upgrade-xq2v6 0/1 Completed 0 12m quayregistry-quay-redis-84f888776f-hhgms 1/1 Running 0 12m- システム A で、最新の y-stream バージョンへの Red Hat Quay のアップグレードを開始します。これは手動プロセスです。インストールされた Operator のアップグレードの詳細は、インストールされた Operator のアップグレード を参照してください。Red Hat Quay のアップグレードパスの詳細は、Red Hat Quay Operator のアップグレード を参照してください。
-
新しい Red Hat Quay レジストリーがインストールされると、クラスター上で必要なアップグレードが自動的に完了します。その後、新しい Red Hat Quay Pod は、最新の y-stream バージョンで起動します。さらに、新しい
QuayPod がスケジュールされ、起動します。 Red Hat Quay UI に移動して、更新が適切に機能していることを確認します。
OpenShift コンソールで Operators
Installed Operators に移動し、Registry Endpoint リンクをクリックします。 重要Red Hat Quay UI が利用可能になるまで、次の手順を実行しないでください。システム A で UI が利用可能になるまで、システム B およびシステム C で Red Hat Quay レジストリーをアップグレードしないでください。
システム A で更新が適切に機能していることを確認し、システム B とシステム C で Red Hat Quay のアップグレードを開始します。Operator のアップグレードにより、Red Hat Quay インストールがアップグレードされ、Pod が再起動されます。
注記データベーススキーマが新しい y-stream インストールに適したものであるため、システム B とシステム C の新しい Pod がすぐに起動します。
更新後、コンポーネントの
overridesを削除して、この手順のステップ 1 で行った変更を元に戻します。以下に例を示します。apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: registry namespace: ns spec: components: … - kind: horizontalpodautoscaler managed: true1 - kind: quay managed: true - kind: clair managed: true - kind: mirror managed: true …- 1
- アップグレード手順の前に、
horizontalpodautoscalerリソースがTrueに設定されていた場合、またはリソース不足の際に Red Hat Quay をスケーリングする場合は、これをTrueに設定します。
5.3.1. OpenShift Container Platform デプロイメント上の Red Hat Quay から geo レプリケートされたサイトを削除する リンクのコピーリンクがクリップボードにコピーされました!
以下の手順を使用すると、Red Hat Quay 管理者は geo レプリケートされたセットアップ内のサイトを削除できます。
前提条件
- OpenShift Container Platform にログインしている。
-
少なくとも 2 つのサイト (例:
usstorageとeustorage) を使用して Red Hat Quay Geo レプリケーションを設定している。 - 各サイトに、独自の組織、リポジトリー、およびイメージタグがある。
手順
次のコマンドを実行して、定義されたすべてのサイト間で Blob を同期します。
$ python -m util.backfillreplication警告Red Hat Quay
config.yamlファイルからストレージエンジンを削除する前に、定義されているすべてのサイト間ですべての Blob が同期されていることを確認する 必要があります。このコマンドを実行すると、レプリケーションワーカーによって取得されるレプリケーションジョブが作成されます。レプリケートする必要がある Blob がある場合、スクリプトはレプリケートされる Blob の UUID を返します。このコマンドを複数回実行したときに、スクリプトから返された出力が空であっても、レプリケーションプロセスが完了したことを意味するわけではありません。それはレプリケーションのためにキューに入れる Blob が残っていないことを意味します。レプリケーションにかかる割り当て時間は検出された Blob の数によって異なるため、次のステップに進む前に適切に評価してください。
または、Microsoft Azure などのサードパーティーのクラウドツールを使用して、同期ステータスを確認することもできます。
このステップは次に進む前に完了する必要があります。
-
サイト
usstorageの Red Hat Quayconfig.yamlファイルで、eustorageサイトのDISTRIBUTED_STORAGE_CONFIGエントリーを削除します。 次のコマンドを入力して、
Quayアプリケーション Pod を識別します。$ oc get pod -n <quay_namespace>出力例
quay390usstorage-quay-app-5779ddc886-2drh2 quay390eustorage-quay-app-66969cd859-n2ssm以下のコマンドを入力して、
usstoragePod でインタラクティブシェルセッションを開きます。$ oc rsh quay390usstorage-quay-app-5779ddc886-2drh2次のコマンドを入力して、
eustorageサイトを完全に削除します。重要次の操作は元に戻すことができません。注意して使用してください。
sh-4.4$ python -m util.removelocation eustorage出力例
WARNING: This is a destructive operation. Are you sure you want to remove eustorage from your storage locations? [y/n] y Deleted placement 30 Deleted placement 31 Deleted placement 32 Deleted placement 33 Deleted location eustorage