6.4. AMQ Broker バージョンの指定によるブローカーコンテナーイメージのアップグレード
以下の手順では、AMQ Broker バージョンを指定して、Operator ベースのブローカーデプロイメントのブローカーコンテナーイメージをアップグレードする方法を説明します。たとえば、Operator を AMQ Broker 7 .
9.3 の最新バージョンにアップグレードするものの、CR の spec.upgrades.enabled
プロパティーがすでに true
に設定され、spec.version
プロパティーが 7.8.0 を指定します。ブローカーコンテナーイメージを アップグレード するには、新しい AMQ Broker バージョンを手動で指定する必要があります(例: 7.9.3
)。新しいバージョンの AMQ Broker を指定する場合、Operator はこのバージョンに対応するブローカーコンテナーイメージを自動的に選択します。
前提条件
7.9.3 には、Operator の最新バージョンを使用する必要があります。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 を編集およびデプロイする権限を持つユーザーとしてコンソールにログインします。
- 左側のペインで、Administration → Custom Resource Definitions をクリックします。
- ActiveMQArtemis CRD をクリックします。
- Instances タブをクリックします。
- プロジェクトの名前空間に対応する CR インスタンスを見つけます。
CR インスタンスの場合は、右側の More Options アイコン (3 つの点) をクリックします。Edit ActiveMQArtemis を選択します。
コンソールで、YAML エディターが開き、CR インスタンスを編集できるようになります。
ブローカーコンテナーイメージをアップグレードする AMQ Broker のバージョンを指定するには、CR の
spec.version
プロパティーの値を設定します。以下に例を示します。spec: version: 7.9.3 ...
CR の
spec
セクションで、upgrades
セクションを見つけます。このセクションが CR に含まれていない場合は、これを追加します。spec: version: 7.9.3 ... upgrades:
upgrades
セクションに、enabled
およびminor
プロパティーが含まれていることを確認します。spec: version: 7.9.3 ... upgrades: enabled: minor:
指定されたバージョンの AMQ Broker に基づくブローカーコンテナーイメージのアップグレードを有効にするには、
enabled
プロパティーの値をtrue
に設定します。spec: version: 7.9.3 ... upgrades: enabled: true minor:
ブローカーのアップグレード動作を定義するには、
minor
プロパティーの値を設定します。AMQ Broker のマイナーバージョン間のアップグレードを許可するには 、
minor
の値をtrue
に設定します。spec: version: 7.9.0 ... upgrades: enabled: true minor: true
たとえば、現在のブローカーコンテナーイメージが
7.8.0
に対応し、spec.version
に指定された7.9.0
バージョンに対応する新しいイメージが利用できるとします。この場合、Operator は7.8
マイナーバージョンと7.9
マイナーバージョン間の利用可能なアップグレードがあることを判別します。マイナーバージョン間のアップグレードを可能にする前述の設定に基づいて、Operator によってブローカーのコンテナーイメージがアップグレードされます。反対に、現在のブローカーコンテナーイメージが
7.9.0
に対応し、spec.version
に7.9.1
と新しい 値を指定するとします。7.9.1
に対応するイメージが存在する場合、Operator は、7.9.0
から7.9.1
のマイクロバージョンの間で、利用可能なアップグレードがあると判断します。マイナーバージョン間のアップグレードのみを許可する前述の設定に基づいて、Operator はブローカーのコンテナーイメージをアップグレードしません。マイクロ AMQ Broker バージョン間のアップグレードを許可するには、
minor
の値をfalse
に設定します。spec: version: 7.9.0 ... upgrades: enabled: true minor: false
たとえば、現在のブローカーコンテナーイメージが
7.8.0
に対応し、spec.version
に指定された7.9.0
バージョンに対応する新しいイメージが利用できるとします。この場合、Operator は7.8
マイナーバージョンと7.9
マイナーバージョン間の利用可能なアップグレードがあることを判別します。前述の設定に基づいて、マイナーバージョン間のアップグレードを許可しない (マイクロバージョン間のアップグレードのみ)、Operator はブローカーのコンテナーイメージをアップグレードしません。反対に、現在のブローカーコンテナーイメージが
7.9.0
に対応し、spec.version
に7.9.1
と新しい 値を指定するとします。7.9.1
に対応するイメージが存在する場合、Operator は、7.9.0
から7.9.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_791
は AMQ Broker 7.9.1 に一致します。Operator が CR の変更を適用すると、デプロイメントで各ブローカー Pod が再起動し、各 Pod が指定されたイメージバージョンを使用するようにします。デプロイメントに複数のブローカーがある場合、1 つのブローカー Pod のみがシャットダウンし、一度に再起動します。
関連情報
- Operator が環境変数を使用してブローカーコンテナーイメージを選択する方法の詳細は、「Operator によるコンテナーイメージの選択方法」 を参照してください。