6.3. OperatorHub を使用した Operator のアップグレード
このセクションでは、OperatorHub を使用して Operator for AMQ Broker をアップグレードする方法について説明します。
6.3.1. 前提条件
-
OperatorHub を使用して Operator をインストールし (つまり、OpenShift Container Platform Web コンソールのプロジェクトの
の下に表示される) 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 以降にアップグレードできます。
手順
- クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
- プロジェクトから既存の AMQ Broker Operator をアンインストールします。
-
左側のナビゲーションメニューで、
をクリックします。 - ページ上部の Project ドロップダウンメニューから、Operator をアンインストールするプロジェクトを選択します。
- アンインストールする Red Hat Integration - AMQ Broker インスタンスを見つけます。
- Operator インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Uninstall Operator を選択します。
- 確認ダイアログボックスで、Uninstall をクリックします。
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 からアップグレードします。
手順
- クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
プロジェクトから既存の AMQ Broker Operator をアンインストールします。
-
左側のナビゲーションメニューで、
をクリックします。 - ページ上部の Project ドロップダウンメニューから、Operator をアンインストールするプロジェクトを選択します。
- アンインストールする Red Hat Integration - AMQ Broker インスタンスを見つけます。
- Operator インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Uninstall Operator を選択します。
- 確認ダイアログボックスで、Uninstall をクリックします。
-
左側のナビゲーションメニューで、
7.10.0 Operator をアップグレードすると、新しい Operator は StatefulSet を削除して、7.10.0 で Operator により StatefulSet セレクターに誤って追加されたカスタムと Operator メータリングラベルを削除します。Operator が StatefulSet を削除すると、既存のブローカー Pod も削除されるため、一時的なブローカーの停止が発生します。停止を回避したい場合は、次の手順を実行して StatefulSet を削除し、ブローカー Pod を孤立させて実行を継続できるようにします。
既存の Operator デプロイメントが含まれるプロジェクトの管理者として OpenShift Container Platform CLI にログインします。
$ oc login -u <user>
Operator バージョンをアップグレードする OpenShift プロジェクトに切り替えます。
$ oc project <project-name>
--cascade=orphan
オプションを指定して StatefulSet を削除し、ブローカー Pod を孤立させます。孤立したブローカー Pod は、StatefulSet が削除された後も引き続き実行されます。$ oc delete statefulset <statefulset-name> --cascade=orphan
メインブローカー CR に
application
またはActiveMQArtemis
というラベルがdeploymentPlan.labels
属性で設定されているか確認します。7.10.0 では、CR でこれらのカスタムラベルを設定できました。これらのラベルは、Operator が Pod にラベルを割り当てるために予約されており、7.10.0 以降ではカスタムラベルとして追加できません。これらのカスタムラベルが 7.10.0 のメインブローカー CR で設定されていた場合、Operator が割り当てた Pod のラベルはカスタムラベルによって上書きされました。CR にこれらのラベルのいずれかがある場合は、次の手順を実行して Pod で正しいラベルを復元し、CR からラベルを削除します。
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
CR の
deploymentPlan.labels
属性から、application
ラベルとActiveMQArtemis
ラベルを削除します。OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
-
ダウンロードした Operator インストールアーカイブの
deploy/crs
ディレクトリーに含まれるbroker_activemqartemis_cr.yaml
というサンプル CR ファイルを開きます。 -
CR の
deploymentPlan.labels
要素で、application
またはActiveMQArtemis
という名前のカスタムラベルをすべて削除します。 - CR ファイルを保存します。
CR インスタンスをデプロイします。
ブローカーデプロイメントのプロジェクトに切り替えます。
$ oc project <project_name>
CR を適用します。
$ oc apply -f <path/to/broker_custom_resource_instance>.yaml
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
左側のペインで、
をクリックします。 - ActiveMQArtemis CRD をクリックします。
- Instances タブをクリックします。
- ブローカーデプロイメントのインスタンスをクリックします。
YAML タブをクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを設定できます。
-
CR の
deploymentPlan.labels
要素で、application
またはActiveMQArtemis
という名前のカスタムラベルをすべて削除します。 - Save をクリックします。
OperatorHub を使用して、AMQ Broker 710 の Operator の最新バージョンをインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。
新しい Operator は、以前のブローカーのデプロイメントを認識して管理できます。デプロイメントの CR で自動更新が有効になっている場合、新しい Operator が開始すると、Operator の調整プロセスによって各ブローカー Pod がアップグレードされます。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。
spec: ... upgrades: enabled: true minor: true
自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。
注記調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。
- 必要に応じて、アップグレードされたブローカーで利用可能な新機能の CR に属性を追加します。
6.3.5. Operator 7.10.1 から 7.10.x へのアップグレード
この手順を使用して、AMQ Broker Operator 7.10.1 からアップグレードします。
手順
- クラスター管理者として OpenShift Container Platform Web コンソールにログインします。
メインブローカー CR に
application
またはActiveMQArtemis
というラベルがdeploymentPlan.labels
属性で設定されているか確認します。これらのラベルは、Operator が Pod にラベルを割り当てるために予約されており、7.10.1 以降では使用できません。これらのカスタムラベルがメインブローカー CR で設定されていた場合、Operator が割り当てた Pod のラベルはカスタムラベルによって上書きされました。
- これらのカスタムラベルがメインブローカー CR で設定されていない場合は、OperatorHub を使用して最新バージョンの Operator for AMQ Broker 7.10 をインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。
これらのカスタムラベルのいずれかがメインブローカー CR で設定されている場合、新しい Operator をインストールする前に、以下の手順を実行して既存の Operator をアンインストールし、正しい Pod ラベルを復元して CR からラベルを削除します。
注記Operator をアンインストールすると、Operator が StatefulSet を削除しなくてもカスタムラベルを削除できます。これにより、既存のブローカー Pod も削除され、ブローカーが一時的に停止します。
プロジェクトから既存の AMQ Broker Operator をアンインストールします。
-
左側のナビゲーションメニューで、
をクリックします。 - ページ上部の Project ドロップダウンメニューから、Operator をアンインストールするプロジェクトを選択します。
- アンインストールする Red Hat Integration - AMQ Broker インスタンスを見つけます。
- Operator インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Uninstall Operator を選択します。
- 確認ダイアログボックスで、Uninstall をクリックします。
-
左側のナビゲーションメニューで、
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
CR の
deploymentPlan.labels
属性から、application
ラベルとActiveMQArtemis
ラベルを削除します。OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
-
ダウンロードした Operator インストールアーカイブの
deploy/crs
ディレクトリーに含まれるbroker_activemqartemis_cr.yaml
というサンプル CR ファイルを開きます。 -
CR の
deploymentPlan.labels
属性で、application
またはActiveMQArtemis
というカスタムラベルをすべて削除します。 - CR ファイルを保存します。
CR インスタンスをデプロイします。
ブローカーデプロイメントのプロジェクトに切り替えます。
$ oc project <project_name>
CR を適用します。
$ oc apply -f <path/to/broker_custom_resource_instance>.yaml
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
左側のペインで、
をクリックします。 - ActiveMQArtemis CRD をクリックします。
- Instances タブをクリックします。
- ブローカーデプロイメントのインスタンスをクリックします。
YAML タブをクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを設定できます。
-
CR の
deploymentPlan.labels
属性で、application
またはActiveMQArtemis
というカスタムラベルをすべて削除します。 - Save をクリックします。
OperatorHub を使用して、AMQ Broker 710 の Operator の最新バージョンをインストールします。詳細は、「OperatorHub からの Operator のデプロイ」 を参照してください。
新しい Operator は、以前のブローカーのデプロイメントを認識して管理できます。デプロイメントの CR で自動更新が有効になっている場合、新しい Operator が開始すると、Operator の調整プロセスによって各ブローカー Pod がアップグレードされます。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。
spec: ... upgrades: enabled: true minor: true
自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。
注記調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。
- 必要に応じて、アップグレードされたブローカーで利用可能な新機能の CR に属性を追加します。