6.7. AMQ Streams Operator の代替のスタンドアロンデプロイメントオプション
Topic Operator および User Operator のスタンドアロンデプロイメントを実行できます。Cluster Operator によって管理されない Kafka クラスターを使用している場合は、これらの Operator のスタンドアロンデプロイメントを検討してください。
Operator を OpenShift にデプロイします。Kafka は OpenShift 外で実行できます。たとえば、Kafka を管理対象サービスとして使用する場合があります。スタンドアロン Operator のデプロイメント設定を調整し、Kafka クラスターのアドレスと一致するようにします。
6.7.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 クラスターはベアメタル環境、仮想マシン、または管理対象クラウドアプリケーションサービスで実行できます。
手順
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_NAMESPACE1 valueFrom: fieldRef: fieldPath: metadata.namespace - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS2 value: my-kafka-bootstrap-address:9092 - name: STRIMZI_RESOURCE_LABELS3 value: "strimzi.io/cluster=my-cluster" - name: STRIMZI_ZOOKEEPER_CONNECT4 value: my-cluster-zookeeper-client:2181 - name: STRIMZI_ZOOKEEPER_SESSION_TIMEOUT_MS5 value: "18000" - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS6 value: "120000" - name: STRIMZI_TOPIC_METADATA_MAX_ATTEMPTS7 value: "6" - name: STRIMZI_LOG_LEVEL8 value: INFO - name: STRIMZI_TLS_ENABLED9 value: "false" - name: STRIMZI_JAVA_OPTS10 value: "-Xmx=512M -Xms=256M" - name: STRIMZI_JAVA_SYSTEM_PROPERTIES11 value: "-Djavax.net.debug=verbose -DpropertyName=value" - name: STRIMZI_PUBLIC_CA12 value: "false" - name: STRIMZI_TLS_AUTH_ENABLED13 value: "false" - name: STRIMZI_SASL_ENABLED14 value: "false" - name: STRIMZI_SASL_USERNAME15 value: "admin" - name: STRIMZI_SASL_PASSWORD16 value: "password" - name: STRIMZI_SASL_MECHANISM17 value: "scram-sha-512" - name: STRIMZI_SECURITY_PROTOCOL18 value: "SSL"- 1
KafkaTopicリソースを監視する Topic Operator の OpenShift namespace。Kafka クラスターの namespace を指定します。- 2
- Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
- 3
- Topic Operator によって管理される
KafkaTopicリソースを識別するラベル。これは、Kafka クラスターの名前である必要はありません。KafkaTopicリソースに割り当てられたラベルにすることができます。複数の Topic Operator をデプロイする場合、ラベルはそれぞれに一意である必要があります。つまり、Operator は同じリソースを管理できません。 - 4
- ZooKeeper クラスターに接続するためのアドレスのホストおよびポートのペア。これは、Kafka クラスターが使用する ZooKeeper クラスターと同じである必要があります。
- 5
- ZooKeeper セッションのタイムアウト (秒単位)。デフォルトは
18000(18 秒) です。 - 6
- 定期的な調整の間隔 (秒単位)。デフォルトは
120000(2 分) です。 - 7
- Kafka からトピックメタデータの取得を試行する回数。各試行の間隔は、指数バックオフとして定義されます。パーティションまたはレプリカの数が原因で、トピックの作成に時間がかかる場合は、この値を大きくすることを検討してください。デフォルトの試行回数は
6回です。 - 8
- ロギングメッセージの出力レベル。レベルを、
ERROR、WARNING、INFO、DEBUG、または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によって有効化された場合のみ必須です。この値はplain、scram-sha-256、またはscram-sha-512に設定できます。 - 18
- (任意)Kafka ブローカーとの通信に使用されるセキュリティープロトコル。デフォルト値は PLAINTEXT です。値は
PLAINTEXT、SSL、SASL_PLAINTEXT、またはSASL_SSLに設定できます。
-
公開認証局から証明書を使用している Kafka ブ ローカーに接続する場合は、
STRIMZI_PUBLIC_CAをtrueに設定します。たとえば、Amazon AWS MSK サービスを使用している場合は、このプロパティーをtrueに設定します。 STRIMZI_TLS_ENABLED環境変数で mTLS を有効にした場合は、Kafka クラスターへの接続認証に使用されるキーストアおよびトラストストアを指定します。mTLS 設定の例
# .... env: - name: STRIMZI_TRUSTSTORE_LOCATION1 value: "/path/to/truststore.p12" - name: STRIMZI_TRUSTSTORE_PASSWORD2 value: "TRUSTSTORE-PASSWORD" - name: STRIMZI_KEYSTORE_LOCATION3 value: "/path/to/keystore.p12" - name: STRIMZI_KEYSTORE_PASSWORD4 value: "KEYSTORE-PASSWORD" # ...Topic Operator をデプロイします。
oc create -f install/topic-operatorデプロイメントのステータスを確認します。
oc get deploymentsデプロイメント名と準備状態が表示されている出力
NAME READY UP-TO-DATE AVAILABLE strimzi-topic-operator 1/1 1 1READYは、Ready/expected 状態のレプリカ数を表示します。AVAILABLE出力に1が表示されれば、デプロイメントは成功しています。
6.7.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 クラスターはベアメタル環境、仮想マシン、または管理対象クラウドアプリケーションサービスで実行できます。
手順
以下の
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_NAMESPACE1 valueFrom: fieldRef: fieldPath: metadata.namespace - name: STRIMZI_KAFKA_BOOTSTRAP_SERVERS2 value: my-kafka-bootstrap-address:9092 - name: STRIMZI_CA_CERT_NAME3 value: my-cluster-clients-ca-cert - name: STRIMZI_CA_KEY_NAME4 value: my-cluster-clients-ca - name: STRIMZI_LABELS5 value: "strimzi.io/cluster=my-cluster" - name: STRIMZI_FULL_RECONCILIATION_INTERVAL_MS6 value: "120000" - name: STRIMZI_WORK_QUEUE_SIZE7 value: 10000 - name: STRIMZI_CONTROLLER_THREAD_POOL_SIZE8 value: 10 - name: STRIMZI_LOG_LEVEL9 value: INFO - name: STRIMZI_GC_LOG_ENABLED10 value: "true" - name: STRIMZI_CA_VALIDITY11 value: "365" - name: STRIMZI_CA_RENEWAL12 value: "30" - name: STRIMZI_JAVA_OPTS13 value: "-Xmx=512M -Xms=256M" - name: STRIMZI_JAVA_SYSTEM_PROPERTIES14 value: "-Djavax.net.debug=verbose -DpropertyName=value" - name: STRIMZI_SECRET_PREFIX15 value: "kafka-" - name: STRIMZI_ACLS_ADMIN_API_SUPPORTED16 value: "true" - name: STRIMZI_MAINTENANCE_TIME_WINDOWS17 value: '* * 8-10 * * ?;* * 14-15 * * ?' - name: STRIMZI_KAFKA_ADMIN_CLIENT_CONFIGURATION18 value: | default.api.timeout.ms=120000 request.timeout.ms=60000- 1
KafkaUserリソースを監視する User Operator の OpenShift namespace。指定できる namespace は 1 つだけです。- 2
- Kafka クラスターのすべてのブローカーを検出し、接続するブートストラップブローカーアドレスのホストとポートのペア。サーバーがダウンした場合に備えて、コンマ区切りリストを使用して 2 つまたは 3 つのブローカーアドレスを指定します。
- 3
- mTLS 認証用の新しいユーザー証明書に署名する認証局の公開鍵 (
ca.crt) 値を含む OpenShiftSecret。 - 4
- mTLS 認証に対して新しいユーザー証明書に署名する認証局の秘密鍵 (
ca.key) の値が含まれる OpenShiftSecret。 - 5
- User Operator によって管理される
KafkaUserリソースを識別するラベル。これは、Kafka クラスターの名前である必要はありません。KafkaUserリソースに割り当てられたラベルにすることができます。複数の User Operator をデプロイする場合、ラベルはそれぞれに一意である必要があります。つまり、Operator は同じリソースを管理できません。 - 6
- 定期的な調整の間隔 (秒単位)。デフォルトは
120000(2 分) です。 - 7
- コントローラーイベントキューのサイズ。キューのサイズは、User Operator が操作すると予想されるユーザーの最大数と少なくとも同じ大きさにする必要があります。デフォルトは
1024です。 - 8
- ユーザーを調整するためのワーカープールのサイズ。プールを大きくすると、より多くのリソースが必要になる可能性がありますが、より多くの
KafkaUserリソースも処理されます。デフォルトは50です。 - 9
- ロギングメッセージの出力レベル。レベルを、
ERROR、WARNING、INFO、DEBUG、またはTRACEに設定できます。 - 10
- ガベッジコレクション (GC) ロギングを有効にします。デフォルトは
trueです。 - 11
- 認証局の有効期間。デフォルトは
365日です。 - 12
- 認証局の更新期間。更新期間は、現在の証明書の有効期日から逆算されます。デフォルトでは、古い証明書が期限切れになる前の証明書の更新期間は
30日です。 - 13
- (任意) User Operator を実行する JVM に使用される Java オプション。
- 14
- (任意) User Operator に設定されたデバッグ (
-D) オプション。 - 15
- (オプション)User Operator によって作成される OpenShift シークレットの名前の接頭辞。
- 16
- (任意)Kafka クラスターが Kafka Admin API を使用した承認 ACL ルールの管理をサポートするかどうかを示します。
falseに設定すると、User Operator はsimple承認 ACL ルールを持つすべてのリソースを拒否します。これは、Kafka クラスターログで不要な例外を回避するのに役立ちます。デフォルトはtrueです。 - 17
- (オプション) 期限切れのユーザー証明書が更新されるメンテナンス時間枠を定義する Cron 式のセミコロンで区切られたリスト。
- 18
- (オプション) プロパティー形式で User Operator が使用する Kafka Admin クライアントを設定するための設定オプション。
mTLS を使用して Kafka クラスターに接続する場合は、接続の認証に使用されるシークレットを指定します。それ以外の場合は、次のステップに進みます。
mTLS 設定の例
# .... env: - name: STRIMZI_CLUSTER_CA_CERT_SECRET_NAME1 value: my-cluster-cluster-ca-cert - name: STRIMZI_EO_KEY_SECRET_NAME2 value: my-cluster-entity-operator-certs # ..."User Operator をデプロイします。
oc create -f install/user-operatorデプロイメントのステータスを確認します。
oc get deploymentsデプロイメント名と準備状態が表示されている出力
NAME READY UP-TO-DATE AVAILABLE strimzi-user-operator 1/1 1 1READYは、Ready/expected 状態のレプリカ数を表示します。AVAILABLE出力に1が表示されれば、デプロイメントは成功しています。