第4章 Quay Bridge Operator のアップグレード

Quay Bridge Operator (QBO) をアップグレードするには、Subscription タブの Channel Subscription 更新チャンネルを目的のチャンネルに変更します。

QBO をバージョン 3.5 から 3.7 にアップグレードする場合は、いくつかの追加の手順が必要です。

  1. 新しい QuayIntegration カスタムリソースを作成する必要があります。これは、Web コンソールまたはコマンドラインから実行できます。

    upgrade-quay-integration.yaml

    - apiVersion: quay.redhat.com/v1
      kind: QuayIntegration
      metadata:
        name: example-quayintegration-new
      spec:
        clusterID: openshift 1
        credentialsSecret:
          name: quay-integration
          namespace: openshift-operators
        insecureRegistry: false
        quayHostname: https://registry-quay-quay35.router-default.apps.cluster.openshift.com

    1
    clusterID が既存の QuayIntegration リソースの値と一致することを確認してください。
  2. 新しい QuayIntegration カスタムリソースを作成します。

    $ oc create -f upgrade-quay-integration.yaml
  3. 古い QuayIntegration カスタムリソースを削除します。
  4. 古い mutatingwebhookconfigurations を削除します。

    $ oc delete mutatingwebhookconfigurations.admissionregistration.k8s.io quay-bridge-operator

4.1. Red Hat Quay Operator の geo レプリケーションデプロイメントのアップグレード

geo レプリケーションされた Red Hat Quay Operator をアップグレードするには、次の手順を使用します。

重要
  • geo レプリケーションされた Red Hat Quay Operator デプロイメントを次の y-stream リリース (例: Red Hat Quay 3.7 → Red Hat Quay 3.8) にアップグレードする場合は、アップグレードを行う前に操作を停止する必要があります。
  • y-stream リリースを次のリリースにアップグレードする場合は、アップグレード中にダウンタイムが断続的に発生します。
  • アップグレードを行う前に、Red Hat Quay Operator デプロイメントをバックアップすることが強く推奨されます。
手順

この手順では、Red Hat Quay Operator を 3 つ (以上) のシステムで実行していることを前提とします。この手順では、System ASystem B、および System C という名前の 3 つのシステムを想定します。System A は、Red Hat Quay Operator がデプロイされるプライマリーシステムとして機能します。

  1. System B および System C で、Red Hat Quay Operator デプロイメントをスケールダウンします。これを行うには、自動スケーリングを無効にし、Red Hat Quay、ミラーワーカー、および Clair (マネージドの場合) のレプリカ数をオーバーライドします。次の quayregistry.yaml ファイルを参照として使用します。

    apiVersion: quay.redhat.com/v1
    kind: QuayRegistry
    metadata:
      name: registry
      namespace: ns
    spec:
      components:
        …
        - kind: horizontalpodautoscaler
          managed: false 1
        - kind: quay
          managed: true
          overrides: 2
            replicas: 0
        - kind: clair
          managed: true
          overrides:
            replicas: 0
        - kind: mirror
          managed: true
          overrides:
            replicas: 0
        …
    1
    Quay、Clair、ミラーリングワーカーの自動スケーリングの無効化
    2
    データベースおよびオブジェクトストレージにアクセスするコンポーネントのレプリカ数を 0 に設定
    注記

    Red Hat Quay Operator がシステム A で実行されている状態を維持する必要があります。システム A の quayregistry.yaml ファイルは更新しないでください。

  2. registry-quay-appregistry-quay-mirror、および registry-clair-app Pod が消えるまで待機します。以下のコマンドを入力してステータスを確認します。

    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-config-editor-6dfdcfc44f-hlvwm   1/1     Running     0             73s
    quayregistry-quay-redis-84f888776f-hhgms           1/1     Running     0             12m

  3. システム A で、Red Hat Quay Operator を最新の y-stream バージョンにアップグレードします。これは手動プロセスです。インストールされている Operator のアップグレードの詳細については、インストールされている Operator のアップグレード を参照してください。Red Hat Quay のアップグレードパスの詳細については、Red Hat Quay Operator のアップグレードを 参照してください。
  4. 新規の Red Hat Quay Operator のインストール後に、クラスターに必要なアップグレードは自動的に完了します。その後、新しい Red Hat Quay Pod は、最新の y-stream バージョンで起動します。さらに、新しい Quay Pod がスケジュールされ、起動します。
  5. Red Hat Quay UI に移動して、更新が適切に機能していることを確認します。

    1. OpenShift コンソールで OperatorsInstalled Operators に移動し、Registry Endpoint リンクをクリックします。

      重要

      Red Hat Quay UI が利用可能になるまで、次の手順を実行しないでください。システム A で UI が利用可能になるまで、システム B およびシステム C で Red Hat Quay Operator をアップグレードしないでください。

  6. 更新が System A で適切に機能していることを確認した後に、System B および System C で Red Hat Quay Operator を開始します。Operator のアップグレードにより、Red Hat Quay インストールがアップグレードされ、Pod が再起動されます。

    注記

    データベーススキーマは新しい y-stream インストールに適しているため、System B および System C の新しい Pod がすぐに起動します。