6.2. Cluster Operator のデプロイ


Cluster Operator は、OpenShift クラスター内で Kafka クラスターのデプロイおよび管理を行います。

Cluster Operator の稼働中に、Kafka リソースの更新に対する監視が開始されます。

デフォルトでは、Cluster Operator の単一のレプリカがデプロイされます。リーダーの選択でレプリカを追加し、中断が発生した場合に追加の Cluster Operator がスタンバイ状態になるようにすることができます。詳細は、リーダーの選択で複数の Cluster Operator レプリカの実行 を参照してください。

6.2.1. Cluster Operator が監視する namespace の指定

Cluster Operator は、Kafka リソースがデプロイされている namespace の更新を監視します。Cluster Operator をデプロイするときに、監視する namespace を指定します。次の namespace を指定できます。

注記

Cluster Operator は、OpenShift クラスターの 1 つ、複数、またはすべての namespace を監視できます。Topic Operator および User Operator は、単一の namespace で KafkaTopic および KafkaUser リソースを監視します。詳細は、AMQ Streams Operator を使用した namespace の監視 を参照してください。

Cluster Operator では、以下のリソースの変更が監視されます。

  • Kafka クラスターの Kafka。
  • Kafka Connect クラスターの KafkaConnect。
  • Kafka Connect クラスターでコネクターを作成および管理するための KafkaConnector。
  • Kafka MirrorMaker インスタンスの KafkaMirrorMaker。
  • Kafka MirrorMaker 2.0 インスタンスの KafkaMirrorMaker2。
  • Kafka Bridge インスタンスの KafkaBridge。
  • Cruise Control の最適化リクエストの KafkaRebalance。

OpenShift クラスターでこれらのリソースの 1 つが作成されると、Operator がクラスターの詳細をリソースから取得します。さらに、StatefulSet、Service、および ConfigMap などの必要な OpenShift リソースが作成され、リソースの新しいクラスターの作成が開始されます。

Kafka リソースが更新されるたびに、リソースのクラスターを設定する OpenShift リソースで該当する更新が Operator によって実行されます。

リソースは、パッチを適用するか削除してから、再作成して、目的とするクラスターの状態を、リソースのクラスターに反映させます。この操作は、サービスの中断を引き起こすローリング更新の原因となる可能性があります。

リソースが削除されると、Operator によってクラスターがアンデプロイされ、関連する OpenShift リソースがすべて削除されます。

6.2.2. 単一の namespace を監視対象とする Cluster Operator のデプロイメント

この手順では、OpenShift クラスターの単一の namespace で AMQ Streams リソースを監視する Cluster Operator をデプロイする方法を説明します。

前提条件

  • CustomResourceDefinition および RBAC (ClusterRole および RoleBinding) リソースを作成および管理する権限を持つアカウント。

手順

  1. Cluster Operator のインストール先の namespace を使用するように、AMQ Streams インストールファイルを編集します。

    たとえば、この手順では Cluster Operator は my-cluster-operator-namespace という namespace にインストールされます。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
  2. Cluster Operator をデプロイします。

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
  3. デプロイメントのステータスを確認します。

    oc get deployments -n my-cluster-operator-namespace

    デプロイメント名と準備状態が表示されている出力

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

6.2.3. 複数の namespace を監視対象とする Cluster Operator のデプロイメント

この手順では、OpenShift クラスターの複数の namespace で AMQ Streams リソースを監視する Cluster Operator をデプロイする方法を説明します。

前提条件

  • CustomResourceDefinition および RBAC (ClusterRole および RoleBinding) リソースを作成および管理する権限を持つアカウント。

手順

  1. Cluster Operator のインストール先の namespace を使用するように、AMQ Streams インストールファイルを編集します。

    たとえば、この手順では Cluster Operator は my-cluster-operator-namespace という namespace にインストールされます。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
  2. install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml ファイルを編集し、Cluster Operator が監視するすべての namespace のリストを STRIMZI_NAMESPACE 環境変数に追加します。

    たとえば、この手順では Cluster Operator は watched-namespace-1、watched-namespace-2、および watched-namespace-3 という namespace を監視します。

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq7/amq-streams-rhel8-operator:2.3.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: watched-namespace-1,watched-namespace-2,watched-namespace-3
  3. リストした各 namespace に RoleBindings をインストールします。

    この例では、コマンドの watched-namespace を前述のステップでリストした namespace に置き換えます。watched-namespace-1、watched-namespace-2、および watched-namespace-3 にも、繰り返し同様の操作を実行します。

    oc create -f install/cluster-operator/020-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/023-RoleBinding-strimzi-cluster-operator.yaml -n <watched_namespace>
    oc create -f install/cluster-operator/031-RoleBinding-strimzi-cluster-operator-entity-operator-delegation.yaml -n <watched_namespace>
  4. Cluster Operator をデプロイします。

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
  5. デプロイメントのステータスを確認します。

    oc get deployments -n my-cluster-operator-namespace

    デプロイメント名と準備状態が表示されている出力

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

6.2.4. すべての namespace を対象とする Cluster Operator のデプロイメント

この手順では、OpenShift クラスターのすべての namespace で AMQ Streams リソースを監視する Cluster Operator をデプロイする方法を説明します。

このモードで実行している場合、Cluster Operator は、新規作成された namespace でクラスターを自動的に管理します。

前提条件

  • CustomResourceDefinition および RBAC (ClusterRole および RoleBinding) リソースを作成および管理する権限を持つアカウント。

手順

  1. Cluster Operator のインストール先の namespace を使用するように、AMQ Streams インストールファイルを編集します。

    たとえば、この手順では Cluster Operator は my-cluster-operator-namespace という namespace にインストールされます。

    Linux の場合は、以下を使用します。

    sed -i 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml

    MacOS の場合は、以下を使用します。

    sed -i '' 's/namespace: .*/namespace: my-cluster-operator-namespace/' install/cluster-operator/*RoleBinding*.yaml
  2. install/cluster-operator/060-Deployment-strimzi-cluster-operator.yaml ファイルを編集し、STRIMZI_NAMESPACE 環境変数の値を * に設定します。

    apiVersion: apps/v1
    kind: Deployment
    spec:
      # ...
      template:
        spec:
          # ...
          serviceAccountName: strimzi-cluster-operator
          containers:
          - name: strimzi-cluster-operator
            image: registry.redhat.io/amq7/amq-streams-rhel8-operator:2.3.0
            imagePullPolicy: IfNotPresent
            env:
            - name: STRIMZI_NAMESPACE
              value: "*"
            # ...
  3. クラスター全体ですべての namespace にアクセスできる権限を Cluster Operator に付与する ClusterRoleBindings を作成します。

    oc create clusterrolebinding strimzi-cluster-operator-namespaced --clusterrole=strimzi-cluster-operator-namespaced --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-watched --clusterrole=strimzi-cluster-operator-watched --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
    oc create clusterrolebinding strimzi-cluster-operator-entity-operator-delegation --clusterrole=strimzi-entity-operator --serviceaccount my-cluster-operator-namespace:strimzi-cluster-operator
  4. Cluster Operator を OpenShift クラスターにデプロイします。

    oc create -f install/cluster-operator -n my-cluster-operator-namespace
  5. デプロイメントのステータスを確認します。

    oc get deployments -n my-cluster-operator-namespace

    デプロイメント名と準備状態が表示されている出力

    NAME                      READY  UP-TO-DATE  AVAILABLE
    strimzi-cluster-operator  1/1    1           1

    READY は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE 出力に 1 が表示されれば、デプロイメントは成功しています。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る