19.5. Configuring and deploying Cruise Control with Kafka
Kafka
リソースを設定して、Kafka クラスターと共に Cruise Control をデプロイします。Kafka
リソースの CruiseControl
プロパティーを使用して、デプロイを設定できます。Kafka クラスターごとに Cruise Control のインスタンスを 1 つデプロイします。
最適化の提案を生成するための最適化ゴールを指定するには、Cruise Control config
で goals
設定を使用します。brokerCapacity
を使用して、リソース配分に関連するゴールのデフォルトの容量制限を変更できます。ブローカーが異種ネットワークリソースを持つノードで実行されている場合、overrides
を使用して各ブローカーのネットワーク容量制限を設定できます。
空のオブジェクト ({}
) が CruiseControl
設定に使用されている場合、すべてのプロパティーはデフォルト値を使用します。
Cruise Control の設定オプションの詳細は、Streams for Apache Kafka カスタムリソース API リファレンス を参照してください。
前提条件
- OpenShift クラスター
- 稼働中の Cluster Operator
手順
Kafka
リソースのcruiseControl
プロパティーを編集します。設定可能なプロパティーは以下の例のとおりです。
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: # ... cruiseControl: brokerCapacity: 1 inboundNetwork: 10000KB/s outboundNetwork: 10000KB/s overrides: 2 - brokers: [0] inboundNetwork: 20000KiB/s outboundNetwork: 20000KiB/s - brokers: [1, 2] inboundNetwork: 30000KiB/s outboundNetwork: 30000KiB/s # ... config: 3 # Note that `default.goals` (superset) must also include all `hard.goals` (subset) default.goals: > 4 com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal, com.linkedin.kafka.cruisecontrol.analyzer.goals.DiskCapacityGoal # ... hard.goals: > com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal # ... cpu.balance.threshold: 1.1 metadata.max.age.ms: 300000 send.buffer.bytes: 131072 webserver.http.cors.enabled: true 5 webserver.http.cors.origin: "*" webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type" # ... resources: 6 requests: cpu: 1 memory: 512Mi limits: cpu: 2 memory: 2Gi logging: 7 type: inline loggers: rootLogger.level: INFO template: 8 pod: metadata: labels: label1: value1 securityContext: runAsUser: 1000001 fsGroup: 0 terminationGracePeriodSeconds: 120 readinessProbe: 9 initialDelaySeconds: 15 timeoutSeconds: 5 livenessProbe: initialDelaySeconds: 15 timeoutSeconds: 5 metricsConfig: 10 type: jmxPrometheusExporter valueFrom: configMapKeyRef: name: cruise-control-metrics key: metrics-config.yml # ...
- 1
- ブローカーリソースの容量制限。
- 2
- オーバーライドは、異種ネットワークリソースを持つノード上で実行されている場合に、特定のブローカーのネットワーク容量制限を設定します。
- 3
- Cruise Control の設定。Streams for Apache Kafka によって直接管理されないプロパティーに限り、標準の Cruise Control 設定を指定できます。
- 4
- 最適化ゴールの設定。デフォルトの最適化ゴール (
default.goals
)、メインの最適化ゴール (goals
)、およびハードゴール (hard.goals
) の設定を含めることができます。 - 5
- CORS が有効になっており、Cruise Control API への読み取り専用アクセスが設定されています。
- 6
- 現在
cpu
およびmemory
である、サポートされるリソースの予約を要求し、消費可能な最大リソースを指定を制限します。 - 7
- Cruise Control ロガーとログレベルは、ConfigMap を通じて直接 (
inline
) または間接 (external
) に追加されます。カスタム Log4j 設定は、ConfigMap のlog4j.properties
キーの下に配置する必要があります。Cruise Control には、rootLogger.level
という名前の単一のロガーがあります。ログレベルは INFO、ERROR、WARN、TRACE、DEBUG、FATAL、または OFF に設定できます。 - 8
- テンプレートのカスタマイズ。ここでは、Pod が追加のセキュリティー属性でスケジュールされています。
- 9
- コンテナーを再起動するタイミング (liveness) およびコンテナーがトラフィックを許可できるタイミング (readiness) を把握するためのヘルスチェック。
- 10
- Prometheus メトリックが有効になりました。この例では、メトリクスは Prometheus JMX Exporter (デフォルトのメトリクスエクスポーター) に対して設定されます。
リソースを作成または更新します。
oc apply -f <kafka_configuration_file>
デプロイメントのステータスを確認します。
oc get deployments -n <my_cluster_operator_namespace>
デプロイメント名と準備状態が表示されている出力
NAME READY UP-TO-DATE AVAILABLE my-cluster-cruise-control 1/1 1 1
my-cluster
は Kafka クラスターの名前です。READY
は、Ready/expected 状態のレプリカ数を表示します。AVAILABLE
出力に1
が表示されれば、デプロイメントは成功しています。
自動作成されたトピック
以下の表は、Cruise Control のデプロイ時に自動作成される 3 つのトピックを表しています。このトピックは、Cruise Control が適切に動作するために必要であるため、削除または変更しないでください。指定された設定オプションを使用して、トピックの名前を変更できます。
自動作成されたトピック設定 | デフォルトのトピック名 | 作成元 | 機能 |
---|---|---|---|
|
| Streams for Apache Kafka Metrics Reporter | Metrics Reporter からの raw メトリクスを各 Kafka ブローカーに格納します。 |
|
| Cruise Control | 各パーティションの派生されたメトリックを格納します。これは Metric Sample Aggregator によって作成されます。 |
|
| Cruise Control | クラスターワークロードモデル の作成に使用されるメトリックサンプルを格納します。 |
Cruise Control に必要なレコードを削除しないようにするため、自動作成されたトピックではログの圧縮は無効になっています。
自動作成されたトピックの名前が、すでに Cruise Control が有効になっている Kafka クラスターで変更された場合、古いトピックは削除されないため、手動で削除する必要があります。
次のステップ
Cruise Control を設定およびデプロイした後、最適化プロポーザルを生成 できます。
関連情報