3.2.2. CLI を使用した Operator のデプロイ
本セクションの手順では、OpenShift コマンドラインインターフェース (CLI) を使用して、OpenShift プロジェクトに最新バージョンの Operator for AMQ Broker 7.9 をデプロイする方法を説明します。
前提条件
- Operator デプロイメントのために OpenShift プロジェクトを準備している必要があります。「Operator コードの取得」 を参照してください。
- AMQ Broker 7.3 以降では、新しいバージョンの Red Hat Ecosystem Catalog を使用してコンテナーイメージにアクセスします。この新しいバージョンのレジストリーでは、イメージにアクセスする前に認証されたユーザーである必要があります。本セクションの手順を実行する前に、「Red Hat Container Registry Authentication」で説明されている手順を完了する必要があります。
永続ストレージでブローカーをデプロイし、OpenShift クラスターに Container-native ストレージがない場合、永続ボリューム (PV) を手動でプロビジョニングし、これらが Operator で要求できるようにする必要があります。たとえば、永続ストレージ (Custom Resource に
persistenceEnabled=true
を設定して) とともに 2 つのブローカーで構成されるクラスターを作成する場合は、2 つの PV が利用可能である必要があります。デフォルトでは、各ブローカーインスタンスには 2 GiB のストレージが必要です。カスタムリソースで
persistenceEnabled=false
を指定した場合、デプロイされたブローカーは一時ストレージを使用します。一時ストレージは、ブローカー Pod を再起動するたびに、既存のデータが失われることを意味します。永続ストレージのプロビジョニングの詳細は、以下を参照してください。
- 永続ストレージについて (OpenShift Container Platform 4.5)
手順
OpenShift コマンドラインインターフェース (CLI) で、クラスター管理者として OpenShift にログインします。以下に例を示します。
$ oc login -u system:admin
Operator デプロイメント用に以前に準備したプロジェクトに切り替えます。以下に例を示します。
$ oc project <project_name>
以前の手順で Operator インストールアーカイブを展開する際に作成されたディレクトリーに移動します。以下に例を示します。
$ cd ~/broker/operator/amq-broker-operator-7.9.3-ocp-install-examples
Operator に含まれる CRD をデプロイします。Operator をデプロイし、起動する前に CRD を OpenShift クラスターにインストールする必要があります。
メインブローカー CRD をデプロイします。
$ oc create -f deploy/crds/broker_activemqartemis_crd.yaml
アドレス CRD をデプロイします。
$ oc create -f deploy/crds/broker_activemqartemisaddress_crd.yaml
スケールダウンコントローラー CRD をデプロイします。
$ oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
Red Hat Ecosystem Catalog での認証に使用されるアカウントに関連付けられたプルシークレットを、OpenShift プロジェクトの
default
、deployer
、およびbuilder
サービスアカウントにリンクします。$ oc secrets link --for=pull default <secret_name> $ oc secrets link --for=pull deployer <secret_name> $ oc secrets link --for=pull builder <secret_name>
ダウンロードした Operator アーカイブの
deploy
ディレクトリーで、operator.yaml
ファイルを開きます。以下のように、spec.containers.image
プロパティーの値が Operator のバージョン 7.9.3-opr-3 に対応していることを確認します。spec: template: spec: containers: #image: registry.redhat.io/amq7/amq-broker-rhel8-operator:7.9 image: registry.redhat.io/amq7/amq-broker-rhel8-operator@sha256:851ae51685e535317486b899eb0f80c3c5236464ae35ef3f9cde740173f7286b
注記operator.yaml
ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#
) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。オプションで
operator.yaml
ファイルのWATCH_NAMESPACE
セクションを編集して、Operator が監視する名前空間を決定します。Operator をデプロイしてアクティブな名前空間を監視するには、このセクションは編集しないでください。
- name: WATCH_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace
Operator をデプロイしてすべての名前空間を監視する方法:
- name: WATCH_NAMESPACE value: '*'
Operator をデプロイして複数の名前空間(例:
namespace1
とnamespace2
)を監視する方法:- name: WATCH_NAMESPACE value: 'namespace1,namespace2'
注記以前のバージョンの Operator を使用してブローカーをデプロイし、Operator をデプロイして多くの名前空間を監視する場合は、アップグレードする前にを参照してください。
Operator をデプロイします。
$ oc create -f deploy/operator.yaml
OpenShift プロジェクトで、Operator は新規 Pod で起動します。
OpenShift Container Platform Web コンソールで、Operator Pod の Events タブにある情報により、OpenShift が指定した Operator イメージがデプロイされ、新規コンテナーが OpenShift クラスターのノードに割り当てられ、新規コンテナーが起動されていることを確認します。
さらに、Pod 内の Logs タブをクリックしても、出力には、以下のような行が含まれるはずです。
... {"level":"info","ts":1553619035.8302743,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemisaddress-controller"} {"level":"info","ts":1553619035.830541,"logger":"kubebuilder.controller","msg":"Starting Controller","controller":"activemqartemis-controller"} {"level":"info","ts":1553619035.9306898,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemisaddress-controller","worker count":1} {"level":"info","ts":1553619035.9311671,"logger":"kubebuilder.controller","msg":"Starting workers","controller":"activemqartemis-controller","worker count":1}
上記の出力では、新たにデプロイされた Operator が Kubernetes と通信していること、ブローカーおよびアドレス指定のコントローラーが実行されていることと、これらのコントローラーが一部のワーカーを起動していることを確認します。
所定の OpenShift プロジェクトに AMQ Interconnect Operator の 単一のインスタンス のみをデプロイすることが推奨されます。Operator デプロイメントの spec.replicas
プロパティーを 1
より大きい値に設定し、同じプロジェクトで Operator を複数回デプロイしたりすることは推奨されません。
関連情報
- OperatorHub グラフィカルインターフェースを使用する AMQ Broker Operator の代替方法については、「OperatorHub を使用した Operator のインストール」 を参照してください。