6.2. CLI を使用した Operator のアップグレード
本セクションの手順では、OpenShift コマンドラインインターフェイス (CLI) を使用して、異なるバージョンの Operator を AMQ Broker 7.10 で利用可能な最新バージョンに更新する方法を説明します。
6.2.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
-
CLI を使用して最初に CLI を使用して Operator をインストールした場合のみ Operator をアップグレードする必要があります。OperatorHub を使用して Operator をインストールします (つまり、Operator は OpenShift Container Platform Web コンソールのプロジェクトの
に表示されます)、OperatorHub を使用して Operator をアップグレードする必要があります。OperatorHub を使用して Operator をアップグレードする方法については、「OperatorHub を使用した Operator のアップグレード」 を参照してください。
6.2.2. CLI を使用した Operator のアップグレード リンクのコピーリンクがクリップボードにコピーされました!
OpenShift コマンドラインインターフェイス (CLI) を使用して、Operator を AMQ Broker 7.10 の最新バージョンにアップグレードできます。
手順
- Web ブラウザーで、AMQ Broker 7.10.7 patches の Software Downloads ページに移動します。
-
Version ドロップダウンリストの値が
7.10.7に設定され、Releases タブが選択されていることを確認します。 AMQ Broker 7.10.7 Operator Installation and Example Files の横にある Download をクリックします。
amq-broker-operator-7.10.7-ocp-install-examples.zip圧縮アーカイブのダウンロードが自動的に開始されます。ダウンロードが完了したら、アーカイブを選択したインストールディレクトリーに移動します。以下の例では、アーカイブを
~/broker/operatorという名前のディレクトリーに移動します。mkdir ~/broker/operator mv amq-broker-operator-7.10.7-ocp-install-examples.zip ~/broker/operator
$ mkdir ~/broker/operator $ mv amq-broker-operator-7.10.7-ocp-install-examples.zip ~/broker/operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow 選択したインストールディレクトリーで、アーカイブの内容をデプロイメントします。以下に例を示します。
cd ~/broker/operator unzip amq-broker-operator-operator-7.10.7-ocp-install-examples.zip
$ cd ~/broker/operator $ unzip amq-broker-operator-operator-7.10.7-ocp-install-examples.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存の Operator デプロイメントが含まれるプロジェクトの管理者として OpenShift Container Platform にログインします。
oc login -u <user>
$ oc login -u <user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator バージョンをアップグレードする OpenShift プロジェクトに切り替えます。
oc project <project-name>
$ oc project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ダウンロードした最新の Operator アーカイブの
deployディレクトリーで、operator.yamlファイルを開きます。注記operator.yamlファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。-
以前の Operator デプロイメントの operator.yaml ファイルを開きます。以前の設定で指定したデフォルト以外の値が新しいoperator.yaml設定ファイルに複製されていることを確認します。 新しい
operator.yamlファイルでは、Operator はデフォルトでcontroller-managerという名前になっています。controller-managerのすべてのインスタンスをamq-broker-operator(以前のバージョンの Operator の名前) に置き換えて、ファイルを保存します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator に含まれる CRD を更新します。Operator をデプロイする前に、CRD を更新する必要があります。
メインブローカー CRD を更新します。
oc apply -f deploy/crds/broker_activemqartemis_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemis_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow アドレス CRD を更新します。
oc apply -f deploy/crds/broker_activemqartemisaddress_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemisaddress_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow スケールダウンコントローラー CRD を更新します。
oc apply -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemisscaledown_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow セキュリティー CRD を更新します。
oc apply -f deploy/crds/broker_activemqartemissecurity_crd.yaml
$ oc apply -f deploy/crds/broker_activemqartemissecurity_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
AMQ Broker Operator 7.10.0 からのアップグレードのみの場合は、Operator と StatefulSet を削除します。
デフォルトでは、新しい Operator は StatefulSet を削除して、7.10.0 で Operator により StatefulSet セレクターに誤って追加されたカスタムと Operator メータリングラベルを削除します。Operator が StatefulSet を削除すると、既存のブローカー Pod も削除されるため、一時的なブローカーの停止が発生します。停止を回避するには、以下の手順を実行して、ブローカー Pod を削除せずに Operator と StatefulSet を削除します。
Operator を削除します。
oc delete -f deploy/operator.yaml
$ oc delete -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow --cascade=orphanオプションを指定して StatefulSet を削除し、ブローカー Pod を孤立させます。孤立したブローカー Pod は、StatefulSet が削除された後も引き続き実行されます。oc delete statefulset <statefulset-name> --cascade=orphan
$ oc delete statefulset <statefulset-name> --cascade=orphanCopy to Clipboard Copied! Toggle word wrap Toggle overflow
AMQ Broker Operator 7.10.0 または 7.10.1 からアップグレードする場合は、メインブローカー CR に
applicationまたはActiveMQArtemisというラベルがdeploymentPlan.labels属性で設定されているか確認します。これらのラベルは、Operator が Pod にラベルを割り当てるために予約されており、7.10.1 以降ではカスタムラベルとして許可されていません。これらのカスタムラベルがメインブローカー CR で設定されていた場合、Operator が割り当てた Pod のラベルはカスタムラベルによって上書きされました。これらのカスタムラベルのいずれかがメインブローカー CR で設定されている場合は、次の手順を実行して Pod で正しいラベルを復元し、CR からラベルを削除します。
7.10.0 からアップグレードする場合は、前の手順で Operator を削除しています。7.10.1 からアップグレードする場合は、Operator を削除します。
oc delete -f deploy/operator.yaml
$ oc delete -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、正しい 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
$ for pod in $(oc get pods | grep -o '^ex-aao[^ ]*') do; oc label --overwrite pods $pod ActiveMQArtemis=ex-aao application=ex-aao-app; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow CR の
deploymentPlan.labels属性から、applicationラベルとActiveMQArtemisラベルを削除します。ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ダウンロードした Operator インストールアーカイブの
deploy/crsディレクトリーに含まれるbroker_activemqartemis_cr.yamlというサンプル CR ファイルを開きます。 -
CR の
deploymentPlan.labels属性で、applicationまたはActiveMQArtemisというカスタムラベルをすべて削除します。 - CR ファイルを保存します。
CR インスタンスをデプロイします。
ブローカーデプロイメントのプロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow CR を適用します。
oc apply -f <path/to/broker_custom_resource_instance>.yaml
$ oc apply -f <path/to/broker_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
以前の Operator を削除した場合は、新しい Operator をデプロイします。
oc create -f deploy/operator.yaml
$ oc create -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
更新された Operator 設定を適用します。
oc apply -f deploy/operator.yaml
$ oc apply -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい Operator は、以前のブローカーのデプロイメントを認識して管理できます。デプロイメントの CR で自動更新が有効になっている場合、Operator の調整プロセスは各ブローカー Pod をアップグレードします。自動更新が有効になっていない場合は、CR で次の属性を設定することで有効にできます。
spec: ... upgrades: enabled: true minor: truespec: ... upgrades: enabled: true minor: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 自動更新を有効にする方法の詳細は、「AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード」 を参照してください。
注記調整プロセスが開始されない場合は、デプロイをスケーリングすることでプロセスを開始できます。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。
- 必要に応じて、アップグレードされたブローカーで利用可能な新機能の CR に属性を追加します。