6.3. OperatorHub を使用した Operator のアップグレード


このセクションでは、OperatorHub を使用して Operator for AMQ Broker をアップグレードする方法について説明します。

6.3.1. 前提条件

  • OperatorHub を使用して Operator をインストールし (つまり、OpenShift Container Platform Web コンソールのプロジェクトの Operators Installed Operators の下に表示される) OperatorHub を使用して Operator をアップグレードする必要があります。一方、OpenShift コマンドラインインターフェイス (CLI) を使用して Operator をインストールした場合、CLI を使用して Operator をアップグレードする必要もあります。CLI を使用して Operator をアップグレードする方法については、「CLI を使用した Operator のアップグレード」 を参照してください。
  • OperatorHub を使用して AMQ Broker Operator をアップグレードするには、OpenShift クラスターのクラスター管理者権限が必要です。

6.3.2. 作業を開始する前に

本セクションでは、OperatorHub を使用して AMQ Broker Operator のインスタンスをアップグレードする前に、いくつかの重要な考慮事項について説明します。

  • Operator Lifecycle Manager は、OperatorHub から最新の Operator バージョンをインストールする際に、OpenShift クラスターの CRD を自動的に更新します。既存の CRD を削除する必要はありません。既存の CRD を削除すると、すべての CR とブローカーインスタンスも削除されます。
  • 最新の Operator バージョンの CRD を使用してクラスターを更新する場合、今回の更新はクラスターのすべてのプロジェクトに影響を与えます。以前のバージョンの Operator からデプロイされたブローカー Pod は、OpenShift Container Platform Web コンソールでそれらのステータスを更新できなくなる可能性があります。稼働中のブローカー Pod の Logs タブをクリックしたら、UpdatePodStatus が失敗したことを示すメッセージが表示されます。ただし、そのプロジェクトのブローカー Pod および Operator は予想通りに機能し続けます。影響を受けるプロジェクトに対してこの問題を解決するには、Operator の最新バージョンを使用するようプロジェクトをアップグレードする必要もあります。
  • 従うべき手順は、アップグレード元およびアップグレード先の Operator のバージョンによって異なります。現在のバージョンのアップグレード手順に従っていることを確認してください。

6.3.3. Operator の 7.10.0 より前のバージョンから 7.10.1 以降へのアップグレード

OperatorHub を使用して、Operator のインスタンスを 7.10.0 より前から 7.10.1 以降にアップグレードできます。

手順

  1. クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
  2. プロジェクトから既存の AMQ Broker Operator をアンインストールします。
  3. 左側のナビゲーションメニューで、Operators Installed Operators をクリックします。
  4. ページ上部の Project ドロップダウンメニューから、Operator をアンインストールするプロジェクトを選択します。
  5. アンインストールする Red Hat Integration - AMQ Broker インスタンスを見つけます。
  6. Operator インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Uninstall Operator を選択します。
  7. 確認ダイアログボックスで、Uninstall をクリックします。
  8. OperatorHub を使用して、AMQ Broker 710 の Operator の最新バージョンをインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。

    デプロイメントの CR で自動更新が有効になっている場合、新しい Operator が開始すると、Operator の調整プロセスによって各ブローカー Pod がアップグレードされます。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。

    注記

    調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。

6.3.4. Operator の 7.10.0 から 7.10.x へのアップグレード

この手順を使用して、AMQ Broker Operator 7.10.0 からアップグレードします。

手順

  1. クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
  2. プロジェクトから既存の AMQ Broker Operator をアンインストールします。

    1. 左側のナビゲーションメニューで、Operators Installed Operators をクリックします。
    2. ページ上部の Project ドロップダウンメニューから、Operator をアンインストールするプロジェクトを選択します。
    3. アンインストールする Red Hat Integration - AMQ Broker インスタンスを見つけます。
    4. Operator インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Uninstall Operator を選択します。
    5. 確認ダイアログボックスで、Uninstall をクリックします。
  3. 7.10.0 Operator をアップグレードすると、新しい Operator は StatefulSet を削除して、7.10.0 で Operator により StatefulSet セレクターに誤って追加されたカスタムと Operator メータリングラベルを削除します。Operator が StatefulSet を削除すると、既存のブローカー Pod も削除されるため、一時的なブローカーの停止が発生します。停止を回避したい場合は、次の手順を実行して StatefulSet を削除し、ブローカー Pod を孤立させて実行を継続できるようにします。

    1. 既存の Operator デプロイメントが含まれるプロジェクトの管理者として OpenShift Container Platform CLI にログインします。

      $ oc login -u <user>
    2. Operator バージョンをアップグレードする OpenShift プロジェクトに切り替えます。

      $ oc project <project-name>
    3. --cascade=orphan オプションを指定して StatefulSet を削除し、ブローカー Pod を孤立させます。孤立したブローカー Pod は、StatefulSet が削除された後も引き続き実行されます。

      $ oc delete statefulset <statefulset-name> --cascade=orphan
  4. メインブローカー CR に application または ActiveMQArtemis というラベルが deploymentPlan.labels 属性で設定されているか確認します。

    7.10.0 では、CR でこれらのカスタムラベルを設定できました。これらのラベルは、Operator が Pod にラベルを割り当てるために予約されており、7.10.0 以降ではカスタムラベルとして追加できません。これらのカスタムラベルが 7.10.0 のメインブローカー CR で設定されていた場合、Operator が割り当てた Pod のラベルはカスタムラベルによって上書きされました。CR にこれらのラベルのいずれかがある場合は、次の手順を実行して Pod で正しいラベルを復元し、CR からラベルを削除します。

    1. OpenShift コマンドラインインターフェイス (CLI) で、次のコマンドを実行して正しい Pod ラベルを復元します。次の例では、ex-aao はデプロイされた StatefulSet の名前です。

      $ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*') do; oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; done
    2. CR の deploymentPlan.labels 属性から、application ラベルと ActiveMQArtemis ラベルを削除します。

      1. OpenShift コマンドラインインターフェイスの使用:

        1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。

          oc login -u <user> -p <password> --server=<host:port>
        2. ダウンロードした Operator インストールアーカイブの deploy/crs ディレクトリーに含まれる broker_activemqartemis_cr.yaml というサンプル CR ファイルを開きます。
        3. CR の deploymentPlan.labels 要素で、application または ActiveMQArtemis という名前のカスタムラベルをすべて削除します。
        4. CR ファイルを保存します。
        5. CR インスタンスをデプロイします。

          1. ブローカーデプロイメントのプロジェクトに切り替えます。

            $ oc project <project_name>
          2. CR を適用します。

            $ oc apply -f <path/to/broker_custom_resource_instance>.yaml
      2. OpenShift Container Platform Web コンソールの使用

        1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
        2. 左側のペインで、Administration Custom Resource Definitions をクリックします。
        3. ActiveMQArtemis CRD をクリックします。
        4. Instances タブをクリックします。
        5. ブローカーデプロイメントのインスタンスをクリックします。
        6. YAML タブをクリックします。

          コンソールで、YAML エディターが開き、CR インスタンスを設定できます。

        7. CR の deploymentPlan.labels 要素で、application または ActiveMQArtemis という名前のカスタムラベルをすべて削除します。
        8. Save をクリックします。
  5. OperatorHub を使用して、AMQ Broker 710 の Operator の最新バージョンをインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。

    新しい Operator は、以前のブローカーのデプロイメントを認識して管理できます。デプロイメントの CR で自動更新が有効になっている場合、新しい Operator が開始すると、Operator の調整プロセスによって各ブローカー Pod がアップグレードされます。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。

    注記

    調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。

  6. 必要に応じて、アップグレードされたブローカーで利用可能な新機能の CR に属性を追加します。

6.3.5. Operator 7.10.1 から 7.10.x へのアップグレード

この手順を使用して、AMQ Broker Operator 7.10.1 からアップグレードします。

手順

  1. クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
  2. メインブローカー CR に application または ActiveMQArtemis というラベルが deploymentPlan.labels 属性で設定されているか確認します。

    これらのラベルは、Operator が Pod にラベルを割り当てるために予約されており、7.10.1 以降では使用できません。これらのカスタムラベルがメインブローカー CR で設定されていた場合、Operator が割り当てた Pod のラベルはカスタムラベルによって上書きされました。

  3. これらのカスタムラベルがメインブローカー CR で設定されていない場合は、OperatorHub を使用して最新バージョンの Operator for AMQ Broker 7.10 をインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。
  4. これらのカスタムラベルのいずれかがメインブローカー CR で設定されている場合、新しい Operator をインストールする前に、以下の手順を実行して既存の Operator をアンインストールし、正しい Pod ラベルを復元して CR からラベルを削除します。

    注記

    Operator をアンインストールすると、Operator が StatefulSet を削除しなくてもカスタムラベルを削除できます。これにより、既存のブローカー Pod も削除され、ブローカーが一時的に停止します。

    1. プロジェクトから既存の AMQ Broker Operator をアンインストールします。

      1. 左側のナビゲーションメニューで、Operators Installed Operators をクリックします。
      2. ページ上部の Project ドロップダウンメニューから、Operator をアンインストールするプロジェクトを選択します。
      3. アンインストールする Red Hat Integration - AMQ Broker インスタンスを見つけます。
      4. Operator インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Uninstall Operator を選択します。
      5. 確認ダイアログボックスで、Uninstall をクリックします。
    2. OpenShift コマンドラインインターフェイス (CLI) で、次のコマンドを実行して正しい Pod ラベルを復元します。次の例では、ex-aao はデプロイされた StatefulSet の名前です。

      $ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*') do; oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; done
    3. CR の deploymentPlan.labels 属性から、application ラベルと ActiveMQArtemis ラベルを削除します。

      1. OpenShift コマンドラインインターフェイスの使用:

        1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。

          oc login -u <user> -p <password> --server=<host:port>
        2. ダウンロードした Operator インストールアーカイブの deploy/crs ディレクトリーに含まれる broker_activemqartemis_cr.yaml というサンプル CR ファイルを開きます。
        3. CR の deploymentPlan.labels 属性で、application または ActiveMQArtemis というカスタムラベルをすべて削除します。
        4. CR ファイルを保存します。
        5. CR インスタンスをデプロイします。

          1. ブローカーデプロイメントのプロジェクトに切り替えます。

            $ oc project <project_name>
          2. CR を適用します。

            $ oc apply -f <path/to/broker_custom_resource_instance>.yaml
      2. OpenShift Container Platform Web コンソールの使用

        1. ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
        2. 左側のペインで、Administration Custom Resource Definitions をクリックします。
        3. ActiveMQArtemis CRD をクリックします。
        4. Instances タブをクリックします。
        5. ブローカーデプロイメントのインスタンスをクリックします。
        6. YAML タブをクリックします。

          コンソールで、YAML エディターが開き、CR インスタンスを設定できます。

        7. CR の deploymentPlan.labels 属性で、application または ActiveMQArtemis というカスタムラベルをすべて削除します。
        8. Save をクリックします。
  5. OperatorHub を使用して、AMQ Broker 710 の Operator の最新バージョンをインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。

    新しい Operator は、以前のブローカーのデプロイメントを認識して管理できます。デプロイメントの CR で自動更新が有効になっている場合、新しい Operator が開始すると、Operator の調整プロセスによって各ブローカー Pod がアップグレードされます。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。

    spec:
        ...
        upgrades:
            enabled: true
            minor: true

    自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。

    注記

    調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。

  6. 必要に応じて、アップグレードされたブローカーで利用可能な新機能の CR に属性を追加します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.