1.5. Operator アップグレードのロールバック


Operator アップグレードをロールバックするには、次のセクションのいずれかで説明されている手順を実行する必要があります。CLI または OpenShift Container Platform Web コンソールを使用して、Operator アップグレードをロールバックできます。

注記

RHACS 4.0 からロールバックする場合は、RHACS 3.74 の最新パッチリリースバージョンにのみロールバックできます。

1.5.1. CLI を使用した Operator アップグレードのロールバック

CLI コマンドを使用して Operator バージョンをロールバックできます。

手順

  1. 次のコマンドを実行して、OLM サブスクリプションを削除します。

    • OpenShift Container Platform の場合、以下のコマンドを実行します。

      $ oc -n rhacs-operator delete subscription rhacs-operator
    • Kubernetes の場合、次のコマンドを実行します。

      $ kubectl -n rhacs-operator delete subscription rhacs-operator
  2. 次のコマンドを実行して、クラスターサービスバージョン (CSV) を削除します。

    • OpenShift Container Platform の場合、以下のコマンドを実行します。

      $ oc -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
    • Kubernetes の場合、次のコマンドを実行します。

      $ kubectl -n rhacs-operator delete csv -l operators.coreos.com/rhacs-operator.rhacs-operator
  3. 次のオプションのいずれかを選択して、ロールバックする前のバージョンを決定します。

    • 現在の Central インスタンスが実行中の場合は、次のコマンドを実行して RHACS API にクエリーを実行し、ロールバックバージョンを取得します。

      $ curl -k -s -u <user>:<password> https://<central hostname>/v1/centralhealth/upgradestatus | jq -r .upgradeStatus.forceRollbackTo
    • 現在の Central インスタンスが実行されていない場合は、次の手順を実行します。

      注記

      この手順は、rocksdb データベースがインストールされている RHACS リリース 3.74 以前でのみ使用できます。

      1. 次のコマンドを実行して、Central デプロイメントがスケールダウンされていることを確認します。

        • OpenShift Container Platform の場合、以下のコマンドを実行します。

          $ oc scale -n <central namespace> –replicas=0 deploy/central
        • Kubernetes の場合、次のコマンドを実行します。

          $ kubectl scale -n <central namespace> –replicas=0 deploy/central
      2. 次の Pod 仕様を YAML ファイルとして保存します。

        apiVersion: v1
        kind: Pod
        metadata:
          name: get-previous-db-version
        spec:
          containers:
          - name: get-previous-db-version
            image: registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<rollback version>
            command:
            - sh
            args:
            - '-c'
            - "cat /var/lib/stackrox/.previous/migration_version.yaml | grep '^image:' | cut -f 2 -d : | tr -d ' '"
            volumeMounts:
            - name: stackrox-db
              mountPath: /var/lib/stackrox
          volumes:
          - name: stackrox-db
            persistentVolumeClaim:
              claimName: stackrox-db
      3. 保存した YAML ファイルを使用し、次のコマンドを実行して、Central namespace に Pod を作成します。

        • OpenShift Container Platform の場合、以下のコマンドを実行します。

          $ oc create -n <central namespace> -f pod.yaml
        • Kubernetes の場合、次のコマンドを実行します。

          $ kubectl create -n <central namespace> -f pod.yaml
      4. Pod の作成が完了したら、次のコマンドを実行してバージョンを取得します。

        • OpenShift Container Platform の場合、以下のコマンドを実行します。

          $ oc logs -n <central namespace> get-previous-db-version
        • Kubernetes の場合、次のコマンドを実行します。

          $ kubectl logs -n <central namespace> get-previous-db-version
  4. 次のコマンドを実行し、central-config.yaml ConfigMap を編集して maintenance.forceRollBackVersion:<version> パラメーターを設定します。

    • OpenShift Container Platform の場合、以下のコマンドを実行します。

      $ oc get configmap -n <central namespace> central-config -o yaml | sed -e "s/forceRollbackVersion: none/forceRollbackVersion: <version>/" | oc -n <central namespace> apply -f -
    • Kubernetes の場合、次のコマンドを実行します。

      $ kubectl get configmap -n <central namespace> central-config -o yaml | sed -e "s/forceRollbackVersion: none/forceRollbackVersion: <version>/" | kubectl -n <central namespace> apply -f -
  5. ステップ 3 で示されたバージョン文字列をイメージタグとして使用して、Central デプロイメントのイメージを設定します。たとえば、以下のコマンドを実行します。

    • OpenShift Container Platform の場合、以下のコマンドを実行します。

      $ oc set image -n <central namespace> deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<version>
    • Kubernetes の場合、次のコマンドを実行します。

      $ kubectl set image -n <central namespace> deploy/central central=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<version>

検証

  1. Central Pod が起動し、ready ステータスになっていることを確認します。Pod がクラッシュした場合は、ログをチェックして、バックアップが復元されたかどうかを確認します。成功した場合のログメッセージは、次の例のように表示されます。

    Clone to Migrate ".previous", ""
  2. ロールバックされたチャネルに Operator を再インストールします。たとえば、3.74.2rhacs-3.74 チャネルにインストールされます。

1.5.2. Web コンソールを使用した Operator アップグレードのロールバック

OpenShift Container Platform Web コンソールを使用して Operator バージョンをロールバックできます。

前提条件

  • cluster-admin パーミッションを持つアカウントを使用して OpenShift Container Platform クラスター Web コンソールにアクセスできる。

手順

  1. Operators Installed Operators ページに移動します。
  2. RHACS Operator をクリックします。
  3. Operator Details ページで、Actions リストから Uninstall Operator を選択します。この操作を実行すると、Operator は実行を停止し、更新を受信しなくなります。
  4. 次のオプションのいずれかを選択して、ロールバックする前のバージョンを決定します。

    • 現在の Central インスタンスが実行中の場合は、ターミナルウィンドウから次のコマンドを実行して、RHACS API をクエリーしてロールバックバージョンを取得できます。

      $ curl -k -s -u <user>:<password> https://<central hostname>/v1/centralhealth/upgradestatus | jq -r .upgradeStatus.forceRollbackTo
    • 次の手順で、Pod を作成し、以前のバージョンを展開できます。

      注記

      この手順は、rocksdb データベースがインストールされている RHACS リリース 3.74 以前でのみ使用できます。

      1. Workloads Deployments central に移動します。
      2. Deployment details で、Pod 数の横にある下矢印をクリックして Pod をスケールダウンします。
      3. Workloads Pods Create Pod に移動し、次の例に示すように Pod 仕様の内容をエディターに貼り付けます。

        apiVersion: v1
        kind: Pod
        metadata:
          name: get-previous-db-version
        spec:
          containers:
          - name: get-previous-db-version
            image: registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:<rollback version>
            command:
            - sh
            args:
            - '-c'
            - "cat /var/lib/stackrox/.previous/migration_version.yaml | grep '^image:' | cut -f 2 -d : | tr -d ' '"
            volumeMounts:
            - name: stackrox-db
              mountPath: /var/lib/stackrox
          volumes:
          - name: stackrox-db
            persistentVolumeClaim:
              claimName: stackrox-db
      4. Create をクリックします。
      5. Pod が作成されたら、Logs タブをクリックしてバージョン文字列を取得します。
  5. 次の手順を実行して、ロールバック設定を更新します。

    1. Workloads ConfigMaps central-config に移動し、Actions リストから Edit ConfigMap を選択します。
    2. central-config.yaml キーの値で、forceRollbackVersion 行を見つけます。
    3. none3.73.3 に置き換えて、ファイルを保存します。
  6. 次の手順を実行して、Central を以前のバージョンに更新します。

    1. Workloads Deployments central に移動し、Actions リストから Edit Deployment を選択します。
    2. イメージ名を更新し、変更を保存します。

検証

  1. Central Pod が起動し、ready ステータスになっていることを確認します。Pod がクラッシュした場合は、ログをチェックして、バックアップが復元されたかどうかを確認します。成功した場合のログメッセージは、次の例のように表示されます。

    Clone to Migrate ".previous", ""
  2. ロールバックされたチャネルに Operator を再インストールします。たとえば、3.74.2rhacs-3.74 チャネルにインストールされます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.