3.2. CLI を使用した Operator のインストール
各 Operator リリースでは、以下で説明するように、最新の AMQ Broker 7.10.7 Operator のインストールおよびサンプルファイル をダウンロードする必要があります。
本セクションの手順では、OpenShift コマンドラインインターフェイス (CLI) を使用して、指定の OpenShift プロジェクトで AMQ Broker 7.10 の Operator の最新バージョンをインストールし、デプロイする方法を説明します。後続の手順で、この Operator を使用して一部のブローカーインスタンスをデプロイします。
- OperatorHub グラフィカルインターフェイスを使用する AMQ Broker Operator の代替方法については、「OperatorHub を使用した Operator のインストール」 を参照してください。
- 既存の Operator ベースのブローカーデプロイメントのアップグレードに関する詳細は、6章Operator ベースのブローカーデプロイメントのアップグレード を参照してください。
3.2.1. Operator のデプロイの準備 リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して Operator をデプロイする前に、Operator インストールファイルをダウンロードしてデプロイメントを準備する必要があります。
手順
- Web ブラウザーで、AMQ Broker 7.10.7 リリース の ソフトウェアダウンロード ページに移動します。
-
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-7.10.7-ocp-install-examples.zip
$ cd ~/broker/operator $ unzip amq-broker-operator-7.10.7-ocp-install-examples.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow アーカイブのデプロイメント時に作成されたディレクトリーに移動します。以下に例を示します。
cd amq-broker-operator-7.10.7-ocp-install-examples
$ cd amq-broker-operator-7.10.7-ocp-install-examplesCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスター管理者として OpenShift Container Platform にログインします。以下に例を示します。
oc login -u system:admin
$ oc login -u system:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator をインストールするプロジェクトを指定します。新規プロジェクトを作成するか、既存プロジェクトに切り替えることができます。
新しいプロジェクトを作成します。
oc new-project <project_name>
$ oc new-project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、既存のプロジェクトに切り替えます。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Operator で使用するサービスアカウントを指定します。
-
デプロイメントした Operator アーカイブの
deployディレクトリーで、service_account.yamlファイルを開きます。 -
kind要素がServiceAccountに設定されていることを確認します。 -
デフォルトのサービスアカウント名を変更する場合は、
metadataセクションでamq-broker-operatorをカスタム名に置き換えます。 プロジェクトにサービスアカウントを作成します。
oc create -f deploy/service_account.yaml
$ oc create -f deploy/service_account.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
デプロイメントした Operator アーカイブの
Operator のロール名を指定します。
-
role.yamlファイルを開きます。このファイルは、Operator が使用できるリソースを指定し、変更します。 -
kind要素がRoleに設定されていることを確認します。 -
デフォルトのロール名を変更する場合は、
metadataセクションでamq-broker-operatorをカスタム名に置き換えます。 プロジェクトにロールを作成します。
oc create -f deploy/role.yaml
$ oc create -f deploy/role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Operator のロールバインディングを指定します。ロールバインディングは、指定した名前に基づいて、事前に作成されたサービスアカウントを Operator ロールにバインドします。
-
role_binding.yamlファイルを開きます。 ServiceAccountとRoleのnameの値がservice_account.yamlおよびrole.yamlファイルで指定された値と一致していることを確認します。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトでロールバインディングを作成します。
oc create -f deploy/role_binding.yaml
$ oc create -f deploy/role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Operator のリーダー選出ロールバインディングを指定します。ロールバインディングは、指定した名前に基づいて、事前に作成されたサービスアカウントをリーダー選出ロールにバインドします。
Operator のリーダー選出ロールを作成します。
oc create -f deploy/election_role.yaml
$ oc create -f deploy/election_role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトでリーダー選出ロールバインディングを作成します。
oc create -f deploy/election_role_binding.yaml
$ oc create -f deploy/election_role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
(オプション) Operator が複数の名前空間を監視するようにする場合は、以下の手順を実行します。
注記OpenShift Container Platform クラスターに、インストール済みの Operators for AMQ Broker がすでに含まれている場合は、新しい Operator が既存の Operator と同じ名前空間を監視しないようにする必要があります。既存の Operator によって監視されている名前空間を識別する方法については、Identifying namespaces watched by existing Operators を参照してください。
-
ダウンロードした Operator アーカイブの deploy ディレクトリーで、
operator_yamlファイルを開きます。 Operator がクラスター内のすべての名前空間を監視するようにする場合は、
WATCH_NAMESPACEセクションでvalue属性を追加し、値をアスタリスクに設定します。WATCH_NAMESPACEセクションの既存の属性をコメントアウトします。以下に例を示します。- name: WATCH_NAMESPACE value: "*" # valueFrom: # fieldRef: # fieldPath: metadata.namespace
- name: WATCH_NAMESPACE value: "*" # valueFrom: # fieldRef: # fieldPath: metadata.namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記競合を避けるために、複数の Operator が同じ名前空間を監視しないようにしてください。たとえば、Operator をデプロイしてクラスター上の すべての 名前空間を監視する場合は、別の Operator をデプロイして個々の名前空間を監視することはできません。Operator がすでにクラスターにデプロイされている場合、次のステップで説明するように、新しい Operator が監視する名前空間のリストを指定できます。
Operator がクラスター上のすべての名前空間ではなく、複数の名前空間を監視するようにする場合は、
WATCH_NAMESPACEセクションで、名前空間のリストを指定します。既存の Operator によって監視されている名前空間を除外していることを確認してください。以下に例を示します。- name: WATCH_NAMESPACE value: "namespace1, namespace2"`.
- name: WATCH_NAMESPACE value: "namespace1, namespace2"`.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
ダウンロードして展開した Operator アーカイブの deploy ディレクトリーで、
cluster_role_binding.yamlファイルを開きます。 Subjects セクションで、Operator を デプロイする OpenShift Container Platform プロジェクトに対応する名前空間を指定します。以下に例を示します。
Subjects: - kind: ServiceAccount name: activemq-artemis-controller-manager namespace: operator-project
Subjects: - kind: ServiceAccount name: activemq-artemis-controller-manager namespace: operator-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記古いバージョンの Operator を使用してブローカーを以前にデプロイし、Operator をデプロイして複数の名前空間を監視する場合は、アップグレードする前に を参照してください。
プロジェクトにクラスターロールを作成します。
oc create -f deploy/cluster_role.yaml
$ oc create -f deploy/cluster_role.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトにクラスターロールバインディングを作成します。
oc create -f deploy/cluster_role_binding.yaml
$ oc create -f deploy/cluster_role_binding.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
ダウンロードした Operator アーカイブの deploy ディレクトリーで、
以下の手順では、Operator をプロジェクトにデプロイします。
3.2.2. CLI を使用した Operator のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
本セクションの手順では、OpenShift コマンドラインインターフェイス (CLI) を使用して、OpenShift プロジェクトに最新バージョンの Operator for AMQ Broker 7.10 をデプロイする方法を説明します。
前提条件
- 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 コマンドラインインターフェイス (CLI) で、クラスター管理者として OpenShift にログインします。以下に例を示します。
oc login -u system:admin
$ oc login -u system:adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator デプロイメント用に以前に準備したプロジェクトに切り替えます。以下に例を示します。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以前の手順で Operator インストールアーカイブをデプロイメントする際に作成されたディレクトリーに移動します。以下に例を示します。
cd ~/broker/operator/amq-broker-operator-7.10.7-ocp-install-examples
$ cd ~/broker/operator/amq-broker-operator-7.10.7-ocp-install-examplesCopy to Clipboard Copied! Toggle word wrap Toggle overflow Operator に含まれる CRD をデプロイします。Operator をデプロイし、起動する前に CRD を OpenShift クラスターにインストールする必要があります。
メインブローカー CRD をデプロイします。
oc create -f deploy/crds/broker_activemqartemis_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemis_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow アドレス CRD をデプロイします。
oc create -f deploy/crds/broker_activemqartemisaddress_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemisaddress_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow スケールダウンコントローラー CRD をデプロイします。
oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow セキュリティー CRD をデプロイします。
oc create -f deploy/crds/broker_activemqartemissecurity_crd.yaml
$ oc create -f deploy/crds/broker_activemqartemissecurity_crd.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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>
$ oc secrets link --for=pull default <secret_name> $ oc secrets link --for=pull deployer <secret_name> $ oc secrets link --for=pull builder <secret_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ダウンロードした Operator アーカイブの
deployディレクトリーで、operator.yamlファイルを開きます。以下に示すように、spec.containers.imageプロパティーの値が Operator のバージョン 7.10.7-opr-1 に対応していることを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記operator.yamlファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。Operator をデプロイします。
oc create -f deploy/operator.yaml
$ oc create -f deploy/operator.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 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}... {"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}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の出力では、新たにデプロイされた Operator が Kubernetes と通信していること、ブローカーおよびアドレス指定のコントローラーが実行されていることと、これらのコントローラーが一部のワーカーを起動していることを確認します。
所定の OpenShift プロジェクトに AMQ Interconnect Operator の 単一のインスタンス のみをデプロイすることが推奨されます。Operator デプロイメントの spec.replicas プロパティーを 1 より大きい値に設定し、同じプロジェクトで Operator を複数回デプロイしたりすることは推奨されません。
関連情報
- OperatorHub グラフィカルインターフェイスを使用する AMQ Broker Operator の代替方法については、「OperatorHub を使用した Operator のインストール」 を参照してください。