6.8. AMQ Streams Operator の代替のスタンドアロンデプロイメントオプション


Topic Operator および User Operator のスタンドアロンデプロイメントを実行できます。Cluster Operator によって管理されない Kafka クラスターを使用している場合は、これらの Operator のスタンドアロンデプロイメントを検討してください。

Operator を OpenShift にデプロイします。Kafka は OpenShift 外で実行できます。たとえば、Kafka をマネージドサービスとして使用する場合があります。スタンドアロン Operator のデプロイメント設定を調整し、Kafka クラスターのアドレスと一致するようにします。

6.8.1. スタンドアロン Topic Operator のデプロイ

この手順では、Topic Operator をトピック管理のスタンドアロンコンポーネントとしてデプロイする方法を説明します。スタンドアロン Topic Operator を Cluster Operator によって管理されない Kafka クラスターと使用できます。

スタンドアロンデプロイメントは、任意の Kafka クラスターで操作できます。

スタンドアロンデプロイメントファイルは AMQ Streams で提供されます。05-Deployment-strimzi-topic-operator.yaml デプロイメントファイルを使用して、Topic Operator をデプロイします。Kafka クラスターへの接続に必要な環境変数を追加または設定します。

Topic Operator は、単一の namespace で KafkaTopic リソースを監視します。Topic Operator 設定で、監視する namespace と Kafka クラスターへの接続を指定します。1 つの Topic Operator が監視できるのは、namespace 1 つです。1 つの namespace を監視するのは、Top Operator 1 つのみとします。複数の Topic Operator を使用する場合は、それぞれが異なる namespace を監視するように設定します。このようにして、Topic Operator を複数の Kafka クラスターで使用できます。

前提条件

  • Topic Operator の接続先となる Kafka クラスターを実行している。

    スタンドアロンの Topic Operator が接続用に正しく設定されている限り、Kafka クラスターはベアメタル環境、仮想マシン、またはマネージドクラウドアプリケーションサービスで実行できます。

手順

  1. install/topic-operator/05-Deployment-strimzi-topic-operator.yaml スタンドアロンデプロイメントファイルの env プロパティーを編集します。

    スタンドアロンの Topic Operator デプロイメント設定の例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-topic-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-topic-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE 
    1
    
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS 
    2
    
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_RESOURCE_LABELS 
    3
    
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_ZOOKEEPER_CONNECT 
    4
    
                  value: my-cluster-zookeeper-client:2181
                - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS 
    5
    
                  value: "18000"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 
    6
    
                  value: "120000"
                - name: STRIMZI_TOPIC_METADATA_MAX_ATTEMPTS 
    7
    
                  value: "6"
                - name: STRIMZI_LOG_LEVEL 
    8
    
                  value: INFO
                - name: STRIMZI_TLS_ENABLED 
    9
    
                  value: "false"
                - name: STRIMZI_JAVA_OPTS 
    10
    
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES 
    11
    
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
                - name: STRIMZI_PUBLIC_CA 
    12
    
                  value: "false"
                - name: STRIMZI_TLS_AUTH_ENABLED 
    13
    
                  value: "false"
                - name: STRIMZI_SASL_ENABLED 
    14
    
                  value: "false"
                - name: STRIMZI_SASL_USERNAME 
    15
    
                  value: "admin"
                - name: STRIMZI_SASL_PASSWORD 
    16
    
                  value: "password"
                - name: STRIMZI_SASL_MECHANISM 
    17
    
                  value: "scram-sha-512"
                - name: STRIMZI_SECURITY_PROTOCOL 
    18
    
                  value: "SSL"
    Copy to Clipboard Toggle word wrap

    1
    KafkaTopic リソースを監視する Topic Operator の OpenShift namespace。Kafka クラスターの namespace を指定します。
    2
    Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
    3
    Topic Operator によって管理される KafkaTopic リソースを識別するラベル。これは、Kafka クラスターの名前である必要はありません。KafkaTopic リソースに割り当てられたラベルにすることができます。複数の Topic Operator をデプロイする場合、ラベルはそれぞれに一意である必要があります。つまり、Operator は同じリソースを管理できません。
    4
    (ZooKeeper) ZooKeeper クラスターに接続するためのアドレスのホストおよびポートのペア。これは、Kafka クラスターが使用する ZooKeeper クラスターと同じである必要があります。
    5
    (ZooKeeper) ZooKeeper セッションのタイムアウト (ミリ秒単位)。デフォルトは 18000 (18 秒) です。
    6
    定期的な調整の間隔 (秒単位)。デフォルトは 120000 (2 分) です。
    7
    Kafka からトピックメタデータの取得を試行する回数。各試行の間隔は、指数バックオフとして定義されます。パーティションまたはレプリカの数が原因で、トピックの作成に時間がかかる場合は、この値を大きくすることを検討してください。デフォルトの試行回数は 6 回です。
    8
    ロギングメッセージの出力レベル。レベルを、ERRORWARNINGINFODEBUG、または TRACE に設定できます。
    9
    Kafka ブローカーとの暗号化された通信の TLS サポートを有効にします。
    10
    (任意) Topic Operator を実行する JVM に使用される Java オプション。
    11
    (任意) Topic Operator に設定されたデバッグ (-D) オプション。
    12
    (オプション)TLS が STRIMZI_TLS_ENABLED によって有効になっている場合、トラストストア証明書の生成を省略します。この環境変数が有効になっている場合、ブローカーは TLS 証明書に公的に信頼できる認証局を使用する必要があります。デフォルトは false です。
    13
    (オプション) mTLS 認証用のキーストア証明書を生成します。これを false に設定すると、mTLS を使用した Kafka ブローカーへのクライアント認証が無効になります。デフォルトは true です。
    14
    (オプション)Kafka ブローカーに接続するときにクライアント認証の SASL サポートを有効にします。デフォルトは false です。
    15
    (任意) クライアント認証用の SASL ユーザー名。SASL が STRIMZI_SASL_ENABLED によって有効化された場合のみ必須です。
    16
    (任意) クライアント認証用の SASL パスワード。SASL が STRIMZI_SASL_ENABLED によって有効化された場合のみ必須です。
    17
    (任意) クライアント認証用の SASL メカニズム。SASL が STRIMZI_SASL_ENABLED によって有効化された場合のみ必須です。この値は plainscram-sha-256、または scram-sha-512 に設定できます。
    18
    (任意)Kafka ブローカーとの通信に使用されるセキュリティープロトコル。デフォルト値は PLAINTEXT です。値は PLAINTEXTSSLSASL_PLAINTEXT、または SASL_SSL に設定できます。
  2. 公開認証局から証明書を使用している Kafka ブ ローカーに接続する場合は、STRIMZI_PUBLIC_CAtrue に設定します。たとえば、Amazon AWS MSK サービスを使用している場合は、このプロパティーを true に設定します。
  3. STRIMZI_TLS_ENABLED 環境変数で mTLS を有効にした場合は、Kafka クラスターへの接続認証に使用されるキーストアおよびトラストストアを指定します。

    mTLS 設定の例

    # ....
    env:
      - name: STRIMZI_TRUSTSTORE_LOCATION 
    1
    
        value: "/path/to/truststore.p12"
      - name: STRIMZI_TRUSTSTORE_PASSWORD 
    2
    
        value: "TRUSTSTORE-PASSWORD"
      - name: STRIMZI_KEYSTORE_LOCATION 
    3
    
        value: "/path/to/keystore.p12"
      - name: STRIMZI_KEYSTORE_PASSWORD 
    4
    
        value: "KEYSTORE-PASSWORD"
    # ...
    Copy to Clipboard Toggle word wrap

    1
    トラストストアには、Kafka および ZooKeeper サーバー証明書の署名に使用される認証局の公開鍵が含まれます。
    2
    トラストストアにアクセスするためのパスワード。
    3
    キーストアには、mTLS 認証用の秘密鍵が含まれています。
    4
    キーストアにアクセスするためのパスワード。
  4. Topic Operator をデプロイします。

    oc create -f install/topic-operator
    Copy to Clipboard Toggle word wrap
  5. デプロイメントのステータスを確認します。

    oc get deployments
    Copy to Clipboard Toggle word wrap

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

    NAME                    READY  UP-TO-DATE  AVAILABLE
    strimzi-topic-operator  1/1    1           1
    Copy to Clipboard Toggle word wrap

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

6.8.1.1. (プレビュー) 一方向トピック管理のためのスタンドアロン Topic Operator のデプロイ

一方向トピック管理では、KafkaTopic リソースのみを通じてトピックを維持します。一方向トピック管理の詳細は、「トピック管理モード」 を参照してください。

一方向トピック管理のプレビューを試したい場合は、次の手順に従ってスタンドアロンの Topic Operator をデプロイメントします。

手順

  1. 現在のスタンドアロン Topic Operator のデプロイを解除します。

    KafkaTopic リソースを保持します。これは、Topic Operator が再度デプロイされるときに Toppic Operator によって選択されます。

  2. スタンドアロン Topic Operator の Deployment 設定を編集して、ZooKeeper 関連の環境変数を削除します。

    • STRIMZI_ZOOKEEPER_CONNECT
    • STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS
    • TC_ZK_CONNECTION_TIMEOUT_MS
    • STRIMZI_USE_ZOOKEEPER_TOPIC_STORE

      一方向 Topic Operator が使用されるかどうかを定義するのは、ZooKeeper 変数の有無です。一方向のトピック管理は ZooKeeper を使用しません。ZooKeeper 環境変数が存在しない場合は、一方向の Topic Operator が使用されます。それ以外の場合は、双方向の Topic Operator が使用されます。

      その他の未使用の環境変数が存在する場合は削除できます。

    • STRIMZI_REASSIGN_THROTTLE
    • STRIMZI_REASSIGN_VERIFY_INTERVAL_MS
    • STRIMZI_TOPIC_METADATA_MAX_ATTEMPTS
    • STRIMZI_TOPICS_PATH
    • STRIMZI_STORE_TOPIC
    • STRIMZI_STORE_NAME
    • STRIMZI_APPLICATION_ID
    • STRIMZI_STALE_RESULT_TIMEOUT_MS
  3. (オプション) STRIMZI_USE_FINALIZERS 環境変数を false に設定します。

    一方向トピック管理のための追加設定

    # ...
    env:
      - name: STRIMZI_USE_FINALIZERS
        value: "false"
    Copy to Clipboard Toggle word wrap

    topic deletion を制御するためにファイナライザーを使用したくない場合は、この環境変数を false に設定します。

    一方向トピック管理のためのスタンドアロン Topic Operator デプロイメント設定の例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-topic-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-topic-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_RESOURCE_LABELS
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS
                  value: "120000"
                - name: STRIMZI_LOG_LEVEL
                  value: INFO
                - name: STRIMZI_TLS_ENABLED
                  value: "false"
                - name: STRIMZI_JAVA_OPTS
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
                - name: STRIMZI_PUBLIC_CA
                  value: "false"
                - name: STRIMZI_TLS_AUTH_ENABLED
                  value: "false"
                - name: STRIMZI_SASL_ENABLED
                  value: "false"
                - name: STRIMZI_SASL_USERNAME
                  value: "admin"
                - name: STRIMZI_SASL_PASSWORD
                  value: "password"
                - name: STRIMZI_SASL_MECHANISM
                  value: "scram-sha-512"
                - name: STRIMZI_SECURITY_PROTOCOL
                  value: "SSL"
                - name: STRIMZI_USE_FINALIZERS
                  value: "true"
    Copy to Clipboard Toggle word wrap

  4. スタンドアロンの Topic Operator を標準の方法でデプロイします。

6.8.2. スタンドアロン User Operator のデプロイ

この手順では、ユーザー管理のスタンドアロンコンポーネントとして User Operator をデプロイする方法を説明します。Cluster Operator の管理対象外となっている Kafka クラスターでは、スタンドアロンの User Operator を使用します。

スタンドアロンデプロイメントは、任意の Kafka クラスターで操作できます。

スタンドアロンデプロイメントファイルは AMQ Streams で提供されます。05-Deployment-strimzi-user-operator.yaml デプロイメントファイルを使用して、User Operator をデプロイします。Kafka クラスターへの接続に必要な環境変数を追加または設定します。

User Operator は、単一の namespace で KafkaUser リソースを監視します。User Operator 設定で、監視する namespace と Kafka クラスターへの接続を指定します。1 つの User Operator が監視できるのは、namespace 1 つです。1 つの namespace を監視するのは、User Operator 1 つのみとします。複数の User Operator を使用する場合は、それぞれが異なる namespace を監視するように設定します。このようにして、User Operator を複数の Kafka クラスターで使用できます。

前提条件

  • User Operator の接続先となる Kafka クラスターを実行している。

    スタンドアロンの User Operator が接続用に正しく設定されている限り、Kafka クラスターはベアメタル環境、仮想マシン、またはマネージドクラウドアプリケーションサービスで実行できます。

手順

  1. 以下の env プロパティーを install/user-operator/05-Deployment-strimzi-user-operator.yaml スタンドアロンデプロイメントファイルで編集します。

    スタンドアロン User Operator デプロイメント設定の例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: strimzi-user-operator
      labels:
        app: strimzi
    spec:
      # ...
      template:
        # ...
        spec:
          # ...
          containers:
            - name: strimzi-user-operator
              # ...
              env:
                - name: STRIMZI_NAMESPACE 
    1
    
                  valueFrom:
                    fieldRef:
                      fieldPath: metadata.namespace
                - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS 
    2
    
                  value: my-kafka-bootstrap-address:9092
                - name: STRIMZI_CA_CERT_NAME 
    3
    
                  value: my-cluster-clients-ca-cert
                - name: STRIMZI_CA_KEY_NAME 
    4
    
                  value: my-cluster-clients-ca
                - name: STRIMZI_LABELS 
    5
    
                  value: "strimzi.io/cluster=my-cluster"
                - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS 
    6
    
                  value: "120000"
                - name: STRIMZI_WORK_QUEUE_SIZE 
    7
    
                  value: 10000
                - name: STRIMZI_CONTROLLER_THREAD_POOL_SIZE 
    8
    
                  value: 10
                - name: STRIMZI_USER_OPERATIONS_THREAD_POOL_SIZE 
    9
    
                  value: 4
                - name: STRIMZI_LOG_LEVEL 
    10
    
                  value: INFO
                - name: STRIMZI_GC_LOG_ENABLED 
    11
    
                  value: "true"
                - name: STRIMZI_CA_VALIDITY 
    12
    
                  value: "365"
                - name: STRIMZI_CA_RENEWAL 
    13
    
                  value: "30"
                - name: STRIMZI_JAVA_OPTS 
    14
    
                  value: "-Xmx=512M -Xms=256M"
                - name: STRIMZI_JAVA_SYSTEM_PROPERTIES 
    15
    
                  value: "-Djavax.net.debug=verbose -DpropertyName=value"
                - name: STRIMZI_SECRET_PREFIX 
    16
    
                  value: "kafka-"
                - name: STRIMZI_ACLS_ADMIN_API_SUPPORTED 
    17
    
                  value: "true"
                - name: STRIMZI_MAINTENANCE_TIME_WINDOWS 
    18
    
                  value: '* * 8-10 * * ?;* * 14-15 * * ?'
                - name: STRIMZI_KAFKA_ADMIN_CLIENT_CONFIGURATION 
    19
    
                  value: |
                    default.api.timeout.ms=120000
                    request.timeout.ms=60000
    Copy to Clipboard Toggle word wrap

    1
    KafkaUser リソースを監視する User Operator の OpenShift namespace。指定できる namespace は 1 つだけです。
    2
    Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
    3
    mTLS 認証用の新しいユーザー証明書に署名する認証局の公開鍵 (ca.crt) 値を含む OpenShift Secret
    4
    mTLS 認証用の新しいユーザー証明書に署名する CA の秘密鍵 (ca.key) 値を含む OpenShift Secret
    5
    User Operator によって管理される KafkaUser リソースを識別するラベル。これは、Kafka クラスターの名前である必要はありません。KafkaUser リソースに割り当てられたラベルにすることができます。複数の User Operator をデプロイする場合、ラベルはそれぞれに一意である必要があります。つまり、Operator は同じリソースを管理できません。
    6
    定期的な調整の間隔 (秒単位)。デフォルトは 120000 (2 分) です。
    7
    コントローラーイベントキューのサイズ。キューのサイズは、User Operator が操作すると予想されるユーザーの最大数と少なくとも同じ大きさにする必要があります。デフォルトは 1024 です。
    8
    ユーザーを調整するためのワーカープールのサイズ。プールを大きくすると、より多くのリソースが必要になる可能性がありますが、より多くの KafkaUser リソースも処理されます。デフォルトは 50 です。
    9
    Kafka Admin API および OpenShift 操作のワーカープールのサイズ。プールを大きくすると、より多くのリソースが必要になる可能性がありますが、より多くの KafkaUser リソースも処理されます。デフォルトは 4 です。
    10
    ロギングメッセージの出力レベル。レベルを、ERRORWARNINGINFODEBUG、または TRACE に設定できます。
    11
    ガベッジコレクション (GC) ロギングを有効にします。デフォルトは true です。
    12
    CA の有効期間。デフォルトは 365 日です。
    13
    CA の更新期間。更新期間は、現在の証明書の有効期日から逆算されます。デフォルトでは、古い証明書が期限切れになる前の証明書の更新期間は 30 日です。
    14
    (任意) User Operator を実行する JVM に使用される Java オプション。
    15
    (任意) User Operator に設定されたデバッグ (-D) オプション。
    16
    (オプション)User Operator によって作成される OpenShift シークレットの名前の接頭辞。
    17
    (任意)Kafka クラスターが Kafka Admin API を使用した認可 ACL ルールの管理をサポートするかどうかを示します。false に設定すると、User Operator は simple 認可 ACL ルールを持つすべてのリソースを拒否します。これは、Kafka クラスターログで不要な例外を回避するのに役立ちます。デフォルトは true です。
    18
    (オプション) 期限切れのユーザー証明書が更新されるメンテナンス時間枠を定義する Cron 式のセミコロンで区切られたリスト。
    19
    (オプション) プロパティー形式で User Operator が使用する Kafka Admin クライアントを設定するための設定オプション。
  2. mTLS を使用して Kafka クラスターに接続する場合は、接続の認証に使用されるシークレットを指定します。それ以外の場合は、次のステップに進みます。

    mTLS 設定の例

    # ....
    env:
      - name: STRIMZI_CLUSTER_CA_CERT_SECRET_NAME 
    1
    
        value: my-cluster-cluster-ca-cert
      - name: STRIMZI_EO_KEY_SECRET_NAME 
    2
    
        value: my-cluster-entity-operator-certs
    # ..."
    Copy to Clipboard Toggle word wrap

    1
    Kafka ブローカー証明書に署名する CA の公開鍵 (ca.crt) 値を含む OpenShift Secret
    2
    Kafka クラスターに対する mTLS 認証に使用される証明書の公開鍵 (entity-operator.crt) と秘密鍵 (entity-operator.key) を含む OpenShift Secret
  3. User Operator をデプロイします。

    oc create -f install/user-operator
    Copy to Clipboard Toggle word wrap
  4. デプロイメントのステータスを確認します。

    oc get deployments
    Copy to Clipboard Toggle word wrap

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

    NAME                   READY  UP-TO-DATE  AVAILABLE
    strimzi-user-operator  1/1    1           1
    Copy to Clipboard Toggle word wrap

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

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat