18.5. Configuring and deploying Cruise Control with Kafka


Kafka リソースを設定して、Kafka クラスターと共に Cruise Control をデプロイします。Kafka リソースの CruiseControl プロパティーを使用して、デプロイを設定できます。Kafka クラスターごとに Cruise Control のインスタンスを 1 つデプロイします。

最適化の提案を生成するための最適化ゴールを指定するには、Cruise Control configgoals 設定を使用します。brokerCapacity を使用して、リソース配分に関連するゴールのデフォルトの容量制限を変更できます。ブローカーが異種ネットワークリソースを持つノードで実行されている場合、overrides を使用して各ブローカーのネットワーク容量制限を設定できます。

空のオブジェクト ({}) が CruiseControl 設定に使用されている場合、すべてのプロパティーはデフォルト値を使用します。

Cruise Control の設定オプションの詳細は、AMQ Streams カスタムリソースの API リファレンス を参照してください。

前提条件

  • OpenShift クラスター
  • 稼働中の Cluster Operator

手順

  1. 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
    # ...
    Copy to Clipboard Toggle word wrap
    1
    ブローカーリソースの容量制限。
    2
    オーバーライドは、異種ネットワークリソースを持つノード上で実行されている場合に、特定のブローカーのネットワーク容量制限を設定します。
    3
    Cruise Control の設定AMQ Streams によって直接管理されないプロパティーに限り、標準 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 (デフォルトのメトリクスエクスポーター) に対して設定されます。
  2. リソースを作成または更新します。

    oc apply -f <kafka_configuration_file>
    Copy to Clipboard Toggle word wrap
  3. デプロイメントのステータスを確認します。

    oc get deployments -n <my_cluster_operator_namespace>
    Copy to Clipboard Toggle word wrap

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

    NAME                      READY  UP-TO-DATE  AVAILABLE
    my-cluster-cruise-control 1/1    1           1
    Copy to Clipboard Toggle word wrap

    my-cluster は Kafka クラスターの名前です。

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

自動作成されたトピック

以下の表は、Cruise Control のデプロイ時に自動作成される 3 つのトピックを表しています。このトピックは、Cruise Control が適切に動作するために必要であるため、削除または変更しないでください。指定された設定オプションを使用して、トピックの名前を変更できます。

Expand
表18.3 自動作成されたトピック
自動作成されたトピック設定デフォルトのトピック名作成元機能

metric.reporter.topic

strimzi.cruisecontrol.metrics

AMQ Streams の Metrics Reporter

Metrics Reporter からの raw メトリクスを各 Kafka ブローカーに格納します。

partition.metric.sample.store.topic

strimzi.cruisecontrol.partitionmetricsamples

Cruise Control

各パーティションの派生されたメトリックを格納します。これは Metric Sample Aggregator によって作成されます。

broker.metric.sample.store.topic

strimzi.cruisecontrol.modeltrainingsamples

Cruise Control

クラスターワークロードモデル の作成に使用されるメトリックサンプルを格納します。

Cruise Control に必要なレコードを削除しないようにするため、自動作成されたトピックではログの圧縮は無効になっています。

注記

自動作成されたトピックの名前が、すでに Cruise Control が有効になっている Kafka クラスターで変更された場合、古いトピックは削除されないため、手動で削除する必要があります。

次のステップ

Cruise Control を設定およびデプロイした後、最適化プロポーザルを生成 できます。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る