9.4. Entity Operator の設定
Kafka.spec
の entityOperator
プロパティーを使用して Entity Operator を設定します。Entity Operator は、実行中の Kafka クラスターで Kafka 関連のエンティティーを管理します。これは次の Operator で構成されます。
- Kafka トピックを管理する Topic Operator
- Kafka ユーザーを管理する User Operator
Kafka
リソースを設定することにより、Cluster Operator は、一方または両方の Operator を含む Entity Operator をデプロイできます。デプロイが完了すると、Kafka クラスターのトピックとユーザーを処理するように Operator が自動的に設定されます。
各 Operator は 1 つの namespace のみを監視できます。詳細は、「OpenShift namespace 内の Streams for Apache Kafka リソースの監視」 を参照してください。
entityOperator
プロパティーでは複数のサブプロパティーがサポートされます。
-
tlsSidecar
-
topicOperator
-
userOperator
-
template
tlsSidecar
プロパティーには、ZooKeeper との通信に使用される TLS サイドカーコンテナーの設定が含まれます。
template
プロパティーには、ラベル、アノテーション、アフィニティー、および容認 (Toleration) などの Entity Operator Pod の設定が含まれます。テンプレートの設定に関する詳細は、「OpenShift リソースのカスタマイズ」 を参照してください。
topicOperator
プロパティーには、Topic Operator の設定が含まれます。このオプションがないと、Entity Operator は Topic Operator なしでデプロイされます。
userOperator
プロパティーには、User Operator の設定が含まれます。このオプションがないと、Entity Operator は User Operator なしでデプロイされます。
Entity Operator の設定に使用されるプロパティーの詳細は、EntityOperatorSpec
スキーマリファレンス を参照してください。
両方の Operator を有効にする基本設定の例
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... zookeeper: # ... entityOperator: topicOperator: {} userOperator: {}
topicOperator
および userOperator
に空のオブジェクト ({}
) が使用された場合、すべてのプロパティーでデフォルト値が使用されます。
topicOperator
および userOperator
プロパティーの両方がない場合、Entity Operator はデプロイされません。
9.4.1. Topic Operator の設定
Kafka.spec.entityOperator
の topicOperator
プロパティーを使用して、Topic Operator を設定します。
デフォルトで有効になっている一方向トピック管理を使用している場合、Kafka.spec.entityOperator.topicOperator.zookeeperSessionTimeoutSeconds
プロパティーおよび Kafka.spec.entityOperator.topicOperator.topicMetadataMaxAttempts
プロパティーは使用されず、無視されます。一方向のトピック管理に関する詳細は、「トピック管理モード」 を参照してください。
以下のプロパティーがサポートされます。
watchedNamespace
-
Topic Operator が
KafkaTopic
リソースを監視する OpenShift namespace。デフォルトは、Kafka クラスターがデプロイされた namespace です。 reconciliationIntervalSeconds
-
定期的な調整 (reconciliation) の間隔 (秒単位)。デフォルトは
120
です。 zookeeperSessionTimeoutSeconds
-
ZooKeeper セッションのタイムアウト (秒単位)。デフォルトは
18
です。 topicMetadataMaxAttempts
-
Kafka からトピックメタデータの取得を試行する回数。各試行の間隔は、指数バックオフとして定義されます。パーティションまたはレプリカの数によって、トピックの作成に時間がかかる可能性がある場合は、この値を大きくすることを検討してください。デフォルトは
6
です。 image
-
image
プロパティーを使用すると、使用されるコンテナーイメージを設定できます。詳細は、image
プロパティーの設定 に記載されている情報を参照してください。 resources
-
resources
プロパティーを使用すると、Topic Operator に割り当てられるリソースの量を設定できます。メモリー
およびcpu
リソースの要求および制限を指定できます。この要求は、Operator のパフォーマンスの安定性を確保するには十分なはずです。 logging
-
logging
プロパティーは、Topic Operator のロギングを設定します。詳細は、Topic Operator のロギング に記載されている情報を参照してください。
Topic Operator の設定例
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... zookeeper: # ... entityOperator: # ... topicOperator: watchedNamespace: my-topic-namespace reconciliationIntervalSeconds: 60 resources: requests: cpu: "1" memory: 500Mi limits: cpu: "1" memory: 500Mi # ...
9.4.2. User Operator の設定
Kafka.spec.entityOperator
の userOperator
プロパティーを使用して、User Operator を設定します。以下のプロパティーがサポートされます。
watchedNamespace
-
User Operator が
KafkaUser
リソースを監視する OpenShift namespace。デフォルトは、Kafka クラスターがデプロイされた namespace です。 reconciliationIntervalSeconds
-
定期的な調整 (reconciliation) の間隔 (秒単位)。デフォルトは
120
です。 image
-
image
プロパティーを使用すると、使用されるコンテナーイメージを設定できます。詳細は、image
プロパティーの設定 に記載されている情報を参照してください。 resources
-
resources
プロパティーを使用すると、User Operator に割り当てられるリソースの量を設定できます。メモリー
およびcpu
リソースの要求および制限を指定できます。この要求は、Operator のパフォーマンスの安定性を確保するには十分なはずです。 logging
-
logging
プロパティーは、User Operator のロギングを設定します。詳細は、User Operator のロギング に記載されている情報を参照してください。 secretPrefix
-
secretPrefix
プロパティーは、KafkaUser リソースから作成されたすべての Secret の名前に接頭辞を追加します。たとえば、secretPrefix: kafka-
は、すべてのシークレット名の前にkafka-
を付けます。そのため、my-user
という名前の KafkaUser は、kafka-my-user
という名前の Secret を作成します。
User Operator の設定例
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... zookeeper: # ... entityOperator: # ... userOperator: watchedNamespace: my-user-namespace reconciliationIntervalSeconds: 60 resources: requests: cpu: "1" memory: 500Mi limits: cpu: "1" memory: 500Mi # ...