3.2. CLI を使用した Operator のインストール


注記

各 Operator リリースでは、以下で説明するように、最新の AMQ Broker 7.10.7 Operator のインストールおよびサンプルファイル をダウンロードする必要があります。

本セクションの手順では、OpenShift コマンドラインインターフェイス (CLI) を使用して、指定の OpenShift プロジェクトで AMQ Broker 7.10 の Operator の最新バージョンをインストールし、デプロイする方法を説明します。後続の手順で、この Operator を使用して一部のブローカーインスタンスをデプロイします。

3.2.1. Operator のデプロイの準備

CLI を使用して Operator をデプロイする前に、Operator インストールファイルをダウンロードしてデプロイメントを準備する必要があります。

手順

  1. Web ブラウザーで、AMQ Broker 7.10.7 リリースソフトウェアダウンロード ページに移動します。
  2. Version ドロップダウンリストの値が 7.10.7 に設定され、Releases タブが選択されていることを確認します。
  3. AMQ Broker 7.10.7 Operator Installation and Example Files の横にある Download をクリックします。

    amq-broker-operator-7.10.7-ocp-install-examples.zip 圧縮アーカイブのダウンロードが自動的に開始されます。

  4. アーカイブを選択したディレクトリーに移動します。以下の例では、アーカイブを ~/broker/operator という名前のディレクトリーに移動します。

    $ mkdir ~/broker/operator
    $ mv amq-broker-operator-7.10.7-ocp-install-examples.zip ~/broker/operator
  5. 選択したディレクトリーで、アーカイブの内容を抽出します。以下に例を示します。

    $ cd ~/broker/operator
    $ unzip amq-broker-operator-7.10.7-ocp-install-examples.zip
  6. アーカイブのデプロイメント時に作成されたディレクトリーに移動します。以下に例を示します。

    $ cd amq-broker-operator-7.10.7-ocp-install-examples
  7. クラスター管理者として OpenShift Container Platform にログインします。以下に例を示します。

    $ oc login -u system:admin
  8. Operator をインストールするプロジェクトを指定します。新規プロジェクトを作成するか、既存プロジェクトに切り替えることができます。

    1. 新しいプロジェクトを作成します。

      $ oc new-project <project_name>
    2. または、既存のプロジェクトに切り替えます。

      $ oc project <project_name>
  9. Operator で使用するサービスアカウントを指定します。

    1. デプロイメントした Operator アーカイブの deploy ディレクトリーで、service_account.yaml ファイルを開きます。
    2. kind 要素が ServiceAccount に設定されていることを確認します。
    3. デフォルトのサービスアカウント名を変更する場合は、metadata セクションで amq-broker-operator をカスタム名に置き換えます。
    4. プロジェクトにサービスアカウントを作成します。

      $ oc create -f deploy/service_account.yaml
  10. Operator のロール名を指定します。

    1. role.yaml ファイルを開きます。このファイルは、Operator が使用できるリソースを指定し、変更します。
    2. kind 要素が Role に設定されていることを確認します。
    3. デフォルトのロール名を変更する場合は、metadata セクションで amq-broker-operator をカスタム名に置き換えます。
    4. プロジェクトにロールを作成します。

      $ oc create -f deploy/role.yaml
  11. Operator のロールバインディングを指定します。ロールバインディングは、指定した名前に基づいて、事前に作成されたサービスアカウントを Operator ロールにバインドします。

    1. role_binding.yaml ファイルを開きます。
    2. ServiceAccountRolename の値が service_account.yaml および role.yaml ファイルで指定された値と一致していることを確認します。以下に例を示します。

      metadata:
          name: amq-broker-operator
      subjects:
          kind: ServiceAccount
          name: amq-broker-operator
      roleRef:
          kind: Role
          name: amq-broker-operator
    3. プロジェクトでロールバインディングを作成します。

      $ oc create -f deploy/role_binding.yaml
  12. Operator のリーダー選出ロールバインディングを指定します。ロールバインディングは、指定した名前に基づいて、事前に作成されたサービスアカウントをリーダー選出ロールにバインドします。

    1. Operator のリーダー選出ロールを作成します。

      $ oc create -f deploy/election_role.yaml
    2. プロジェクトでリーダー選出ロールバインディングを作成します。

      $ oc create -f deploy/election_role_binding.yaml
  13. (オプション) Operator が複数の名前空間を監視するようにする場合は、以下の手順を実行します。

    注記

    OpenShift Container Platform クラスターに、インストール済みの Operators for AMQ Broker がすでに含まれている場合は、新しい Operator が既存の Operator と同じ名前空間を監視しないようにする必要があります。既存の Operator によって監視されている名前空間を識別する方法については、Identifying namespaces watched by existing Operators を参照してください。

    1. ダウンロードした Operator アーカイブの deploy ディレクトリーで、operator_yaml ファイルを開きます。
    2. Operator がクラスター内のすべての名前空間を監視するようにする場合は、WATCH_NAMESPACE セクションで value 属性を追加し、値をアスタリスクに設定します。WATCH_NAMESPACE セクションの既存の属性をコメントアウトします。以下に例を示します。

      - name: WATCH_NAMESPACE
        value: "*"
      # valueFrom:
      #   fieldRef:
      #     fieldPath: metadata.namespace
      注記

      競合を避けるために、複数の Operator が同じ名前空間を監視しないようにしてください。たとえば、Operator をデプロイしてクラスター上の すべての 名前空間を監視する場合は、別の Operator をデプロイして個々の名前空間を監視することはできません。Operator がすでにクラスターにデプロイされている場合、次のステップで説明するように、新しい Operator が監視する名前空間のリストを指定できます。

    3. Operator がクラスター上のすべての名前空間ではなく、複数の名前空間を監視するようにする場合は、WATCH_NAMESPACE セクションで、名前空間のリストを指定します。既存の Operator によって監視されている名前空間を除外していることを確認してください。以下に例を示します。

      - name: WATCH_NAMESPACE
        value: "namespace1, namespace2"`.
    4. ダウンロードして展開した Operator アーカイブの deploy ディレクトリーで、cluster_role_binding.yaml ファイルを開きます。
    5. Subjects セクションで、Operator を デプロイする OpenShift Container Platform プロジェクトに対応する名前空間を指定します。以下に例を示します。

      Subjects:
      - kind: ServiceAccount
        name: activemq-artemis-controller-manager
        namespace: operator-project
      注記

      古いバージョンの Operator を使用してブローカーを以前にデプロイし、Operator をデプロイして複数の名前空間を監視する場合は、アップグレードする前に を参照してください。

    6. プロジェクトにクラスターロールを作成します。

      $ oc create -f deploy/cluster_role.yaml
    7. プロジェクトにクラスターロールバインディングを作成します。

      $ oc create -f deploy/cluster_role_binding.yaml

以下の手順では、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 を再起動するたびに、既存のデータが失われることを意味します。

    永続ストレージのプロビジョニングの詳細は、以下を参照すること。

手順

  1. OpenShift コマンドラインインターフェイス (CLI) で、クラスター管理者として OpenShift にログインします。以下に例を示します。

    $ oc login -u system:admin
  2. Operator デプロイメント用に以前に準備したプロジェクトに切り替えます。以下に例を示します。

    $ oc project <project_name>
  3. 以前の手順で Operator インストールアーカイブをデプロイメントする際に作成されたディレクトリーに移動します。以下に例を示します。

    $ cd ~/broker/operator/amq-broker-operator-7.10.7-ocp-install-examples
  4. Operator に含まれる CRD をデプロイします。Operator をデプロイし、起動する前に CRD を OpenShift クラスターにインストールする必要があります。

    1. メインブローカー CRD をデプロイします。

      $ oc create -f deploy/crds/broker_activemqartemis_crd.yaml
    2. アドレス CRD をデプロイします。

      $ oc create -f deploy/crds/broker_activemqartemisaddress_crd.yaml
    3. スケールダウンコントローラー CRD をデプロイします。

      $ oc create -f deploy/crds/broker_activemqartemisscaledown_crd.yaml
    4. セキュリティー CRD をデプロイします。

      $ oc create -f deploy/crds/broker_activemqartemissecurity_crd.yaml
  5. Red Hat Ecosystem Catalog での認証に使用されるアカウントに関連付けられたプルシークレットを、OpenShift プロジェクトの defaultdeployer、および 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>
  6. ダウンロードした 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 値が特定のコンテナーイメージタグに対応していることを示します。

  7. 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 を複数回デプロイしたりすることは推奨されません

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.