3.10.5. バックグラウンドアップグレードの実行

バックグラウンドアップグレードは、2 回ほどクラスターを短時間ダウンさせるだけで実行できます。最初のダウンタイム後にクラスターを再起動すると、データベースをバックフィルするため、quay v3 コンテナーは v2 互換性モードで実行します。このバックグラウンドプロセスが完了するまでに時間または数日かかる場合があります。数時間を超えるダウンタイムが問題となるような大規模なインストールを行う場合は、バックグラオウンドアップグレードが推奨されます。

このタイプのアップグレードでは、Red Hat Quay を互換性モードにします。互換性モードでは、Quay 3 コンテナーが実行しますが、アップグレードが完了するまで以前のデータモデルで実行します。手順は以下のとおりです。

  1. Red Hat Quay 3 コンテナーをすべてのノードにプルします。以下のコンテナーのバージョンより新しいものを使用します。

    quay.io/redhat/quay:v3.0.5

  2. Quay-builder および Clair コンテナーなど Red Hat Quay クラスター全体で停止します。
  3. 各ノードで config.yaml ファイルを編集し、以下のようにアップグレードモードを background に設定します。

    V3_UPGRADE_MODE: background

  4. Red Hat Quay 3 コンテナーを単一ノードで起動し、移行が完了するまで待機します (最大で数分かかります)。以下はコマンドの例です。

    Quay コンテナーは、Red Hat Quay 2 の場合のように 80 および 443 ではなく、Red Hat Quay 3 のポート 8080 および 8443 で起動することに注意してください。したがって、以下の例のように 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
  5. その他のすべてのノードで Red Hat Quay 3 コンテナーを起動します。
  6. 次の手順に進むのに十分なレポーティングがされるまで (ステータスが 99% に到達するまで)、/upgradeprogress API エンドポイントを監視します。たとえば https://myquay.example.com/upgradeprogress を表示するか、または他のツールを使用して API をクエリーします。
  7. バックグラウンドプロセスが十分に終了したら、別のメンテナーンス期間をスケジュールする必要があります。
  8. 定期メンテナーンス時に、Red Hat Quay クラスター全体を停止します。
  9. 各ノードで config.yaml ファイルを編集し、以下のように、アップグレードモードを complete に設定します。

    V3_UPGRADE_MODE: complete
  10. Red Hat Quay を 1 つのノードで再び起動し、最終チェックを実行できるようにします。
  11. 最終チェックが完了したら、Red Hat Quay v3 を他のすべてのノードでも起動します。
  12. quay-builder と Clair の 3.0.z バージョンを起動して、クラスターに戻すコンテナーのインスタンスを置き換えます。
  13. Docker バージョン 2、スキーマ 2 と互換性のあるコンテナーのプッシュおよびプルなど、Quay が機能していることを確認します。これには、Windows コンテナーイメージおよび異なるコンピューターアーキテクチャーのイメージ (arm、ppc など) が含まれます。