9.5. Cruise Control の設定
Kafka.spec.cruiseControl
の config
プロパティーには設定オプションがキーとして含まれ、それらの値は以下の JSON タイプの 1 つになります。
- 文字列
- 数値
- ブール値
JSON または YAML に似た文字列は、明示的に引用符で囲む必要があります。
AMQ Streams によって直接管理されるオプション以外は、Cruise Control ドキュメント の Configurations セクションにリストされているすべてのオプションを指定および設定できます。以下の文字列の 1 つと同じキーまたは以下の文字列の 1 つで始まるキーを持つ設定オプションは編集できません。
-
bootstrap.servers
-
zookeeper.
-
ssl.
-
security.
-
failed.brokers.zk.path
-
webserver.http.port
-
webserver.http.address
-
webserver.api.urlprefix
-
metric.reporter.sampler.bootstrap.servers
-
metric.reporter.topic
-
metric.reporter.topic.pattern
-
partition.metric.sample.store.topic
-
broker.metric.sample.store.topic
-
capacity.config.file
-
skip.sample.store.topic.rack.awareness.check
-
cruise.control.metrics.topic
-
sasl.
制限されたオプションが指定された場合、そのオプションは無視され、警告メッセージが Cluster Operator のログファイルに出力されます。すべてのサポートされるオプションは Cruise Control に渡されます。
Cruise Control の設定例
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka metadata: name: my-cluster spec: # ... cruiseControl: # ... config: default.goals: > com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal cpu.balance.threshold: 1.1 metadata.max.age.ms: 300000 send.buffer.bytes: 131072 # ...
容量の設定
Cruise Control は 容量制限 を使用して、特定のリソースベースの最適化ゴールが破損しているか判断します。
Kafka ブローカーリソースの容量制限は、Kafka.spec.cruiseControl
の brokerCapacity
プロパティーに指定します。容量制限は、記述された単位で以下のブローカーリソースに設定できます。
-
disk
- バイト単位のディスクストレージ -
cpuUtilization
- パーセント (0-100) で表した CPU 使用率 -
inboundNetwork
- バイト毎秒単位のインバウンドネットワークスループット -
outboundNetwork
- バイト毎秒単位のアウトバウンドネットワークスループット
AMQ Streams の Kafka ブローカーは同種であるため、Cruise Control は監視している各ブローカーに同じ容量制限を適用します。
Cruise Control の brokerCapacity の設定例
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka metadata: name: my-cluster spec: # ... cruiseControl: # ... brokerCapacity: disk: 100G cpuUtilization: 100 inboundNetwork: 10000KB/s outboundNetwork: 10000KB/s # ...
関連情報
詳細は 「BrokerCapacity
スキーマー参照」 を参照してください。
ロギングの設定
Cruise Control には独自の設定可能なロガーがあります。
-
cruisecontrol.root.logger
Cruise Control では Apache log4j
ロガー実装が使用されます。
logging
プロパティーを使用してロガーおよびロガーレベルを設定します。
ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、またはカスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.name
プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties
を使用して記述されます。
ここで、inline
および external
ロギングの例を示します。
inline ロギング
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka # ... spec: cruiseControl: # ... logging: type: inline loggers: cruisecontrol.root.logger: "INFO" # ...
外部ロギング
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka # ... spec: cruiseControl: # ... logging: type: external name: customConfigMap # ...