第22章 Cruise Control を使用したトピックレプリケーション係数の変更


Topic Operator によって管理される KafkaTopic リソースを更新して、トピックのレプリケーション係数を変更します。次のような特定の目的に合わせてレプリケーション係数を調整できます。

  • 重要でないトピックやリソース不足のためにレプリケーション係数を低く設定する
  • データの耐久性と耐障害性を向上させるために、より高いレプリケーション係数を設定する

Topic Operator は Cruise Control を使用して必要な変更を行うため、Streams for Apache Kafka とともに Cruise Control をデプロイする必要があります。

Topic Operator は、管理対象および一時停止されていないすべての KafkaTopic リソースを監視し、定期的に調整して、Kafka 内のトピックのレプリケーション係数を比較することにより、.spec.replicas 設定の変更を検出します。その後、1 つ以上のレプリケーションファクターの更新が Cruise Control に送信され、単一の要求で処理されます。

進行状況は KafkaTopic リソースのステータスに反映されます。

手順

  1. KafkaTopic リソースを編集して、replicas 値を変更します。

    この手順では、my-topicreplicas の値を 1 から 3 に変更します。

    Kafka トピックレプリケーション係数の設定

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaTopic
    metadata:
      name: my-topic
      labels:
        strimzi.io/cluster: my-cluster
    spec:
      partitions: 1
      replicas: 3
      # ...
    Copy to Clipboard Toggle word wrap

  2. KafkaTopic 設定に変更を適用し、Topic Operator がトピックを更新するのを待ちます。
  3. KafkaTopic リソースのステータスをチェックして、リクエストが成功したことを確認します。

    oc get kafkatopics my-topic -o yaml
    Copy to Clipboard Toggle word wrap

    レプリケーション係数の変更のステータス

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaTopic
    metadata:
      name: my-topic
      labels:
        strimzi.io/cluster: my-cluster
    spec:
      partitions: 1
      replicas: 3
      # ...
    
    # ...
    status:
      conditions:
      - lastTransitionTime: "2024-01-18T16:13:50.490918232Z"
        status: "True"
        type: Ready
      observedGeneration: 2
      replicasChange:
        sessionId: 1aa418ca-53ed-4b93-b0a4-58413c4fc0cb 
    1
    
        state: ongoing 
    2
    
        targetReplicas: 3 
    3
    
      topicName: my-topic
    Copy to Clipboard Toggle word wrap

    1
    プロセスが保留状態でなくなったときに表示される、クルーズコントロール操作のセッション ID。
    2
    更新の状態。pending から ongoing に移行した後、変更が完了すると、replicasChange のステータス全体が削除されます。
    3
    レプリカの数の変更を要求しました。

    リクエストが完了する前に失敗した場合は、ステータスにエラーメッセージが表示されます。リクエストは失敗状態になった場合、定期的に再試行されます。

スタンドアロンの Topic Operator を使用してトピックのレプリケーション係数を変更する

スタンドアロンの Topic Operator を使用しており、設定を通じてトピックのレプリケーション係数を変更する場合は、Cruise Control デプロイメントと並行して Topic Operator を単方向モードで使用する必要があります。また、スタンドアロン Topic Operator デプロイメントを Cruise Control と統合できるように、次の環境変数を含める必要があります。

スタンドアロンの 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_CRUISE_CONTROL_ENABLED 
1

              value: true
            - name: STRIMZI_CRUISE_CONTROL_RACK_ENABLED 
2

              value: false
            - name: STRIMZI_CRUISE_CONTROL_HOSTNAME 
3

              value: cruise-control-api.namespace.svc
            - name: STRIMZI_CRUISE_CONTROL_PORT 
4

              value: 9090
            - name: STRIMZI_CRUISE_CONTROL_SSL_ENABLED 
5

              value: true
            - name: STRIMZI_CRUISE_CONTROL_AUTH_ENABLED 
6

              value: true
Copy to Clipboard Toggle word wrap

1
Cruise Control を Topic Operator と統合します。
2
Kafka クラスターでラックアウェアネスを有効にするかどうかを示すフラグ。その場合、レプリカは異なるラック、データセンター、またはアベイラビリティーゾーンに分散できます。
3
Cruise Control のホスト名。
4
Cruise Control ポート。
5
Kafka クラスターにアクセスするための TLS 認証と暗号化を有効にします。
6
Cruise Control API にアクセスするための Basic 認証を有効にします。

TLS 認証および承認を有効にする場合は、以下のように必要な証明書をマウントします。

  • /etc/tls-sidecar/cluster-ca-certs/ca.crt にある Cluster CA (証明機関) の公開証明書
  • /etc/eto-cc-api/topic-operator.apiAdminName および /etc/eto-cc-api/topic-operator.apiAdminPassword 内の Basic 認証のクレデンシャル (ユーザー名とパスワード)
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat