6.4. AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード
以下の手順では、AMQ Broker バージョンを指定して、Operator ベースのブローカーデプロイメントのブローカーコンテナーイメージをアップグレードする方法を説明します。これは、たとえば Operator を AMQ Broker 7.10.0 にアップグレードする際に、CR の spec.upgrades.enabled
プロパティーがすでに true
に設定され、spec.version
プロパティーが 7.9.0
を指定している場合に実行します。ブローカーコンテナーイメージをアップグレードするには、新しい AMQ Broker バージョン (例: 7.10.0
) を手動で指定する必要があります。新しいバージョンの AMQ Broker を指定する場合、Operator はこのバージョンに対応するブローカーコンテナーイメージを自動的に選択します。
前提条件
- 「Operator によるコンテナーイメージの選択方法」 で説明されているように、CR をデプロイし、ブローカーコンテナーイメージを明示的に指定しない場合、Operator は使用する適切なコンテナーイメージを自動的に選択します。このセクションで説明されているアップグレードプロセスを使用するには、このデフォルトの動作を使用する必要があります。CR でブローカーコンテナーイメージを直接指定し、デフォルト動作を上書きする場合、Operator は以下で説明されているように、ブローカーコンテナーイメージを自動的に AMQ Broker バージョンに対応するようにアップグレードすることはできません。
手順
ブローカーデプロイメントのメインブローカー CR インスタンスを編集します。
OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトで CR を編集およびデプロイする権限を持つユーザーとして OpenShift にログインします。
$ oc login -u <user> -p <password> --server=<host:port>
-
テキストエディターで、ブローカーデプロイメントに使用した CR ファイルを開きます。たとえば、これは以前にダウンロードおよび抽出した Operator インストールアーカイブの
deploy/crs
ディレクトリーにあるbroker_activemqartemis_cr.yaml
ファイルである可能性があります。
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR を編集およびデプロイする権限を持つユーザーとしてコンソールにログインします。
-
左側のペインで、
をクリックします。 - ActiveMQArtemis CRD をクリックします。
- Instances タブをクリックします。
- プロジェクトの namespace に対応する CR インスタンスを見つけます。
CR インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Edit ActiveMQArtemis を選択します。
コンソールで、YAML エディターが開き、CR インスタンスを編集できるようになります。
ブローカーコンテナーイメージをアップグレードする AMQ Broker のバージョンを指定するには、CR の
spec.version
プロパティーの値を設定します。以下に例を示します。spec: version: 7.10.0 ...
CR の
spec
セクションで、upgrades
セクションを見つけます。このセクションが CR に含まれていない場合は、これを追加します。spec: version: 7.10.0 ... upgrades:
upgrades
セクションに、enabled
およびminor
プロパティーが含まれていることを確認します。spec: version: 7.10.0 ... upgrades: enabled: minor:
指定されたバージョンの AMQ Broker に基づくブローカーコンテナーイメージのアップグレードを有効にするには、
enabled
プロパティーの値をtrue
に設定します。spec: version: 7.10.0 ... upgrades: enabled: true minor:
ブローカーのアップグレード動作を定義するには、
minor
プロパティーの値を設定します。AMQ Broker のマイナーバージョン間のアップグレードを許可するには 、
minor
の値をtrue
に設定します。spec: version: 7.10.0 ... upgrades: enabled: true minor: true
たとえば、現在のブローカーコンテナーイメージが
7.9.0
に対応し、spec.version
に指定された7.10.0
バージョンに対応する新しいイメージが利用できるとします。この場合、Operator は7.9.0
および7.10.0
のマイナーバージョン間で利用可能なアップグレードがあることを判別します。マイナーバージョン間のアップグレードを可能にする前述の設定に基づいて、Operator によってブローカーのコンテナーイメージがアップグレードされます。反対に、現在のブローカーコンテナーイメージが
7.10.0
に対応し、spec.version
に7.10.1
という新しい 値を指定するとします。7.10.1
に対応するイメージが存在する場合、Operator は、7.10.0
と7.10.1
のマイクロバージョンの間で、利用可能なアップグレードがあると判断します。マイナーバージョン間のアップグレードのみを許可する前述の設定に基づいて、Operator はブローカーのコンテナーイメージをアップグレードしません。マイクロ AMQ Broker バージョン間のアップグレードを許可するには、
minor
の値をfalse
に設定します。spec: version: 7.10.0 ... upgrades: enabled: true minor: false
たとえば、現在のブローカーコンテナーイメージが
7.9.0
に対応し、spec.version
に指定された7.10.0
バージョンに対応する新しいイメージが利用できるとします。この場合、Operator は7.9.0
および7.10.0
のマイナーバージョン間で利用可能なアップグレードがあることを判別します。前述の設定に基づいて、マイナーバージョン間のアップグレードを許可しない (マイクロバージョン間のアップグレードのみ)、Operator はブローカーのコンテナーイメージをアップグレードしません。反対に、現在のブローカーコンテナーイメージが
7.10.0
に対応し、spec.version
に7.10.1
という新しい 値を指定するとします。7.10.1
に対応するイメージが存在する場合、Operator は、7.10.0
と7.10.1
のマイクロバージョンの間で、利用可能なアップグレードがあると判断します。マイクロバージョン間のアップグレードを可能にする前述の設定に基づいて、Operator によってブローカーのコンテナーイメージがアップグレードされます。
変更を CR に適用します。
OpenShift コマンドラインインターフェイスの使用:
- CR ファイルを保存します。
ブローカーデプロイメントのプロジェクトに切り替えます。
$ oc project <project_name>
CR を適用します。
$ oc apply -f <path/to/broker_custom_resource_instance>.yaml
OpenShift Web コンソールの使用
- CR の編集が完了したら、Save をクリックします。
CR の変更を適用する際に、Operator はまず
spec.version
に指定された AMQ Broker バージョンへのアップグレードが利用可能であることを検証します。アップグレードする無効なバージョンの AMQ Broker を指定している場合 (たとえば、まだ利用できないバージョンなど)、Operator は警告メッセージをログに記録し、それ以上のアクションを取ることができません。ただし、指定されたバージョンにアップグレードでき、
upgrade.enabled
およびupgrades.minor
に指定される値を指定すると、デプロイメントの各ブローカーが、新しい AMQ Broker バージョンに対応するブローカーコンテナーイメージを使用するようになります。Operator が使用するブローカーコンテナーイメージは、Operator デプロイメントの
operator.yaml
設定ファイルの環境変数で定義されます。環境変数名には、AMQ Broker バージョンの ID が含まれます。たとえば、環境変数RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100 は AMQ Broker
7.10.7 に対応しています。Operator が CR の変更を適用すると、デプロイメントで各ブローカー Pod が再起動し、各 Pod が指定されたイメージバージョンを使用するようにします。デプロイメントに複数のブローカーがある場合、1 つのブローカー Pod のみがシャットダウンし、一度に再起動します。
関連情報
- Operator が環境変数を使用してブローカーコンテナーイメージを選択する方法の詳細は、「Operator によるコンテナーイメージの選択方法」 を参照してください。