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
選択したディレクトリーで、アーカイブの内容を抽出します。以下に例を示します。
$ cd ~/broker/operator $ unzip amq-broker-operator-7.10.7-ocp-install-examples.zip
アーカイブのデプロイメント時に作成されたディレクトリーに移動します。以下に例を示します。
$ cd amq-broker-operator-7.10.7-ocp-install-examples
クラスター管理者として OpenShift Container Platform にログインします。以下に例を示します。
$ oc login -u system:admin
Operator をインストールするプロジェクトを指定します。新規プロジェクトを作成するか、既存プロジェクトに切り替えることができます。
新しいプロジェクトを作成します。
$ oc new-project <project_name>
または、既存のプロジェクトに切り替えます。
$ oc project <project_name>
Operator で使用するサービスアカウントを指定します。
-
デプロイメントした Operator アーカイブの
deploy
ディレクトリーで、service_account.yaml
ファイルを開きます。 -
kind
要素がServiceAccount
に設定されていることを確認します。 -
デフォルトのサービスアカウント名を変更する場合は、
metadata
セクションでamq-broker-operator
をカスタム名に置き換えます。 プロジェクトにサービスアカウントを作成します。
$ oc create -f deploy/service_account.yaml
-
デプロイメントした Operator アーカイブの
Operator のロール名を指定します。
-
role.yaml
ファイルを開きます。このファイルは、Operator が使用できるリソースを指定し、変更します。 -
kind
要素がRole
に設定されていることを確認します。 -
デフォルトのロール名を変更する場合は、
metadata
セクションでamq-broker-operator
をカスタム名に置き換えます。 プロジェクトにロールを作成します。
$ oc create -f deploy/role.yaml
-
Operator のロールバインディングを指定します。ロールバインディングは、指定した名前に基づいて、事前に作成されたサービスアカウントを Operator ロールにバインドします。
-
role_binding.yaml
ファイルを開きます。 ServiceAccount
とRole
のname
の値がservice_account.yaml
およびrole.yaml
ファイルで指定された値と一致していることを確認します。以下に例を示します。metadata: name: amq-broker-operator subjects: kind: ServiceAccount name: amq-broker-operator roleRef: kind: Role name: amq-broker-operator
プロジェクトでロールバインディングを作成します。
$ oc create -f deploy/role_binding.yaml
-
Operator のリーダー選出ロールバインディングを指定します。ロールバインディングは、指定した名前に基づいて、事前に作成されたサービスアカウントをリーダー選出ロールにバインドします。
Operator のリーダー選出ロールを作成します。
$ oc create -f deploy/election_role.yaml
プロジェクトでリーダー選出ロールバインディングを作成します。
$ oc create -f deploy/election_role_binding.yaml
(オプション) 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
注記競合を避けるために、複数の Operator が同じ名前空間を監視しないようにしてください。たとえば、Operator をデプロイしてクラスター上の すべての 名前空間を監視する場合は、別の Operator をデプロイして個々の名前空間を監視することはできません。Operator がすでにクラスターにデプロイされている場合、次のステップで説明するように、新しい Operator が監視する名前空間のリストを指定できます。
Operator がクラスター上のすべての名前空間ではなく、複数の名前空間を監視するようにする場合は、
WATCH_NAMESPACE
セクションで、名前空間のリストを指定します。既存の Operator によって監視されている名前空間を除外していることを確認してください。以下に例を示します。- name: WATCH_NAMESPACE value: "namespace1, namespace2"`.
-
ダウンロードして展開した Operator アーカイブの deploy ディレクトリーで、
cluster_role_binding.yaml
ファイルを開きます。 Subjects セクションで、Operator を デプロイする OpenShift Container Platform プロジェクトに対応する名前空間を指定します。以下に例を示します。
Subjects: - kind: ServiceAccount name: activemq-artemis-controller-manager namespace: operator-project
注記古いバージョンの Operator を使用してブローカーを以前にデプロイし、Operator をデプロイして複数の名前空間を監視する場合は、アップグレードする前に を参照してください。
プロジェクトにクラスターロールを作成します。
$ oc create -f deploy/cluster_role.yaml
プロジェクトにクラスターロールバインディングを作成します。
$ oc create -f deploy/cluster_role_binding.yaml
-
ダウンロードした 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
Operator デプロイメント用に以前に準備したプロジェクトに切り替えます。以下に例を示します。
$ oc project <project_name>
以前の手順で Operator インストールアーカイブをデプロイメントする際に作成されたディレクトリーに移動します。以下に例を示します。
$ cd ~/broker/operator/amq-broker-operator-7.10.7-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
セキュリティー CRD をデプロイします。
$ oc create -f deploy/crds/broker_activemqartemissecurity_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.10.7-opr-1 に対応していることを確認します。spec: template: spec: containers: #image: registry.redhat.io/amq7/amq-broker-rhel8-operator:7.10 image: registry.redhat.io/amq7/amq-broker-rhel8-operator@sha256:1a7aa54d2799d238eb5f49f7a95a78a896f6bf8d222567e9118e0e3963cc9aad
注記operator.yaml
ファイルでは、Operator は Secure Hash Algorithm (SHA) 値で表されるイメージを使用します。数字記号 (#
) 記号で始まるコメント行は、SHA 値が特定のコンテナーイメージタグに対応していることを示します。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 のインストール」 を参照してください。