3.7.5. バックグラウンドアップグレードの実行
バックグラウンドのアップグレードを実行するには、2 つの状況でのみ短期間クラスターを停止する必要があります。最初のダウンタイム後にクラスターを再起動すると、quay v3 コンテナーはデータベースをバックフィルするために v2 互換性モードで実行されます。このバックグラウンドプロセスが完了するには、数時間または数日かかる場合があります。大規模なインストールで数時間を超えるダウンタイムが問題になる場合には、バックグラウンドアップグレードが推奨されます。
このタイプのアップグレードでは、Red Hat Quay を互換性モードにします。この場合は、アップグレードが完了するまで v3 Quay
コンテナーはが実行されますが、古いデータモデルで実行されます。以下を行います。
Red Hat Quay v3 コンテナーをすべてのノードにプルします。コンテナーの以下のバージョン以降を使用します。
quay.io/redhat/quay:v3.0.5
- 任意の quay-builder および clair コンテナーを含む、Red Hat Quay クラスター全体を停止します。
各ノードで
config.yaml
ファイルを編集し、以下のようにアップグレードモードを background に設定します。V3_UPGRADE_MODE: background
Red Hat Quay v3 コンテナーを単一のノードで起動し、移行が完了するまで待機します (これには最大で数分の時間がかかります)。以下は、このコマンドの例です。
Quay
コンテナーは、v2 の場合のようにポート 8080 および 8443(80 および 443 ではなく)で起動することに注意してください。したがって、以下の例のように 8080 と 8443 の 80 と 443 のマッピングを再度行うことが推奨されます。# docker run --restart=always -p 80:8080 -p 443:8443 \ --sysctl net.core.somaxconn=4096 \ --privileged=true \ -v /mnt/quay/config:/conf/stack:Z \ -v /mnt/quay/storage:/datastorage:Z \ -d quay.io/redhat/quay:v3.0.5
- 他のすべてのノードで Red Hat Quay v3 コンテナーを起動します。
-
/upgradeprogress
API エンドポイントは、次のステップに進むのに十分であることが報告される (ステータスが 99% に達する) までモニターします。たとえば、https://myquay.example.com/upgradeprogress
を表示するか、またはその他のツールを使用して API をクエリーします。 - バックグラウンドプロセスが十分に進んだら、別のメンテナンス期間をスケジュールする必要があります。
- スケジュールメンテナンスの期間中に、Red Hat Quay クラスター全体を停止します。
各ノードで
config.yaml
ファイルを編集し、以下のようにアップグレードモードをcomplete
に設定します。V3_UPGRADE_MODE: complete
- Red Hat Quay を 1 つのノードで再び起動し、最終的なチェックを実行させます。
- 最終チェックが完了したら、Red Hat Quay v3 を他のすべてのノードで再起動します。
- v3.0.z バージョンの quay-builder および clair を起動し、クラスターに戻すコンテナーのインスタンスを置き換えます。
- Docker バージョン 2、スキーマ 2 と互換性のあるコンテナーのプッシュおよびプルを含め、Quay が動作していることを確認します。これには、Windows コンテナーイメージおよび各種コンピューターアーキテクチャー (arm、ppc など) のイメージが含まれます。