2.4. Operator によるコンテナーイメージの選択方法
ブローカーデプロイメント用のカスタムリソース (CR) インスタンスを作成する場合、CR でブローカまたは Init コンテナーのイメージ名を明示的に指定する 必要はありません。デフォルトで、CR をデプロイし、コンテナーイメージの値を明示的に指定しない場合、Operator は使用する適切なコンテナーイメージを自動的に選択します。
OpenShift コマンドラインインターフェイスを使用して Operator をインストールする場合、Operator インストールアーカイブには broker_activemqartemis_cr.yaml
というサンプル CR ファイルが含まれます。サンプル CR では、spec.deploymentPlan.image
プロパティーが含まれ、placeholder
のデフォルト値に設定されます。この値は、Operator が CR をデプロイするまでブローカーコンテナーイメージを選択しないことを示します。
Init コンテナーイメージを指定する spec.deploymentPlan.initImage
プロパティーは、broker_activemqartemis_cr.yaml
サンプル CR ファイルには含まれません。spec.deploymentPlan.initImage
プロパティーを明示的に CR に追加し、値を指定する場合、Operator は CR のデプロイ時に使用する適切な組み込み Init コンテナーイメージを選択します。
このセクションでは、Operator がこのイメージを選択する仕組みについて説明します。
ブローカーおよび init コンテナーイメージを選択するには、Operator はまず、イメージが対応する AMQ Broker バージョンを判別します。Operator は以下のようにバージョンを判別します。
-
メイン CR の
spec.upgrades.enabled
プロパティーがすでにtrue
に設定され、spec.version
プロパティーが7.7.0
、7.8.0
、7.8.1
、または7.8.2
を指定し、Operator はその指定されたバージョンを使用します。 -
spec.upgrades.enabled
がtrue
に設定されてい ない 場合や、spec.version
が 7.7.0
よりも前の AMQ Broker バージョンに設定されている場合、Operator は 最新 バージョンの AMQ Broker (つまり 7.10.7
)を使用します。
その後、Operator はコンテナープラットフォームを検出します。AMQ Broker Operator は以下のコンテナープラットフォームで実行できます。
- OpenShift Container Platform (x86_64)
- OpenShift Container Platform on IBM Z (s390x)
- OpenShift Container Platform on IBM Power Systems (ppc64le)
AMQ Broker およびコンテナープラットフォームのバージョンに基づいて、Operator は operator.yaml
設定ファイルで環境変数の 2 セットを参照します。以下のサブセクションで説明されているように、環境変数のセットは、さまざまなバージョンの AMQ Broker のブローカーおよび Init コンテナーイメージを指定します。
2.4.1. ブローカーコンテナーイメージの環境変数
ブローカーコンテナーイメージの operator.yaml
設定ファイルに含まれる環境変数には、以下の命名規則があります。
- OpenShift Container Platform
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>
- OpenShift Container Platform on IBM Z
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_s390x
- OpenShift Container Platform on IBM Power Systems
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_<AMQ_Broker_version_identifier>_ppc64le
サポート対象のコンテナープラットフォームと特定の AMQ Broker バージョンの環境変数名を以下の表に示します。
コンテナープラットフォーム | 環境変数名 |
---|---|
OpenShift Container Platform |
|
OpenShift Container Platform on IBM Z |
|
OpenShift Container Platform on IBM Power Systems |
|
各環境変数の値は、Red Hat から利用できるブローカーコンテナーイメージを指定します。以下に例を示します。
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Kubernetes_7100 #value: registry.redhat.io/amq7/amq-broker-rhel8:7.10 value: registry.redhat.io/amq7/amq-broker-rhel8@sha256:982ba18be1ac285722bc0ca8e85d2a42b8b844ab840b01425e79e3eeee6ee5b9
そのため、AMQ Broker のバージョンとコンテナープラットフォームをベースとするため、Operator は該当する環境変数名を決定します。Operator はブローカーコンテナーの起動時に対応するイメージ値を使用します。
operator.yaml
ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#
) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。
2.4.2. Init コンテナーイメージの環境変数
Init コンテナーイメージの operator.yaml
設定ファイルに含まれる環境変数には、以下の命名規則があります。
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_<AMQ_Broker_version_identifier>
特定の AMQ Broker バージョンの環境変数名を以下に示します。
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_782
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_790
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100
各環境変数の値は、Red Hat で利用できる Init コンテナーイメージを指定します。以下に例を示します。
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100 #value: registry.redhat.io/amq7/amq-broker-init-rhel8:0.4-21 value: registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622
したがって、AMQ Broker のバージョンに基づいて、Operator は該当する環境変数名を決定します。Operator は init コンテナーの起動時に対応するイメージ値を使用します。
例のように、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#
) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。対応するコンテナーイメージタグが 0.4-21
の形式でフローティングタグではないことを確認します。つまり、Operator で使用されるコンテナーイメージは固定されたままになります。Red Hat から新しい マイクロ イメージのバージョン (つまり、0.4-21-n
、n は最新のマイクロバージョン) が利用可能になったときに、Operator が自動的にプルして使用するわけではありません。
Init コンテナーイメージの operator.yaml
設定ファイルに含まれる環境変数には、以下の命名規則があります。
- OpenShift Container Platform
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_<AMQ_Broker_version_identifier>
- OpenShift Container Platform on IBM Z
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_s390x_<AMQ_Broker_version_identifier>
- OpenShift Container Platform on IBM Power Systems
-
RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_ppc64le_<AMQ_Broker_version_identifier>
サポート対象のコンテナープラットフォームと特定の AMQ Broker バージョンの環境変数名を以下の表に示します。
コンテナープラットフォーム | 環境変数名 |
---|---|
OpenShift Container Platform |
|
OpenShift Container Platform on IBM Z |
|
OpenShift Container Platform on IBM Power Systems |
|
各環境変数の値は、Red Hat で利用できる Init コンテナーイメージを指定します。以下に例を示します。
- name: RELATED_IMAGE_ActiveMQ_Artemis_Broker_Init_7100 #value: registry.redhat.io/amq7/amq-broker-init-rhel8:0.4-21-1 value: registry.redhat.io/amq7/amq-broker-init-rhel8@sha256:f37f98c809c6f29a83e3d5a3ac4494e28efe9b25d33c54f533c6a08662244622
そのため、AMQ Broker のバージョンとコンテナープラットフォームをベースとするため、Operator は該当する環境変数名を決定します。Operator は init コンテナーの起動時に対応するイメージ値を使用します。
例のように、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#
) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。対応するコンテナーイメージタグが 0.4-21
の形式でフローティングタグではないことを確認します。つまり、Operator で使用されるコンテナーイメージは固定されたままになります。Red Hat から新しい マイクロ イメージのバージョン (つまり、0.4-21-n
、n は最新のマイクロバージョン) が利用可能になったときに、Operator が自動的にプルして使用するわけではありません。
関連情報
- AMQ Broker Operator を使用してブローカーデプロイメントを作成する方法は、3章AMQ Broker Operator を使用した OpenShift Container Platform での AMQ Broker のデプロイ を参照してください。
- Operator が init コンテナーを使用してブローカー設定を生成する方法の詳細は、「Operator によるブローカー設定の生成方法」 を参照してください。
- カスタム Init コンテナーイメージをビルドし、指定する方法については、「カスタム init コンテナーイメージの指定」 を参照してください。