第18章 ブローカーの追加または削除によるクラスターのスケーリング


ブローカーを追加して Kafka クラスターをスケーリングすると、クラスターのパフォーマンスと信頼性が向上します。ブローカーを追加すると、利用可能なリソースが増加し、クラスターがより大きなワークロードを処理し、より多くのメッセージを処理できるようになります。また、より多くのレプリカとバックアップを提供することでフォールトトレランスを向上させることもできます。逆に、十分に活用されていないブローカーを削除すると、リソースの消費が削減され、効率が向上します。中断やデータ損失を避けるために、スケーリングは慎重に行う必要があります。クラスター内のすべてのブローカーにパーティションを再分散することにより、各ブローカーのリソース使用率が削減され、クラスターの全体的なスループットが向上します。

注記

Kafka トピックのスループットを向上させるには、そのトピックのパーティションの数を増やすことができます。これにより、トピックの負荷をクラスター内の異なるブローカー間で共有できるようになります。ただし、すべてのブローカーが特定のリソース (I/O など) によって制約されている場合、パーティションを追加してもスループットは向上しません。この場合、クラスターにブローカーをさらに追加する必要があります。

Kafka.spec.kafka.replicas 設定を調整すると、レプリカとして機能するクラスター内のブローカーの数に影響します。トピックの実際のレプリケーション係数は、default.replication.factor および min.insync.replicas の設定、および使用可能なブローカーの数によって決まります。たとえば、レプリケーション係数 3 は、トピックの各パーティションが 3 つのブローカー間でレプリケーションされ、ブローカーに障害が発生した場合のフォールトトレランスを確保することを意味します。

レプリカ設定の例

Copy to Clipboard Toggle word wrap
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    replicas: 3
    # ...
  config:
      # ...
      default.replication.factor: 3
      min.insync.replicas: 2
 # ...

Kafka リソース設定を通じてブローカーを追加する場合、ノード ID は 0 (ゼロ) から始まり、Cluster Operator は次に小さい ID を新しいノードに割り当てます。ブローカーの削除プロセスは、クラスター内で最も高い ID を持つブローカー Pod から開始されます。

ノードプールを使用してクラスター内のノードを管理している場合は、KafkaNodePool.spec.replicas 設定を調整して、ノードプール内のノードの数を変更します。さらに、ノードプールを使用して既存のクラスターをスケーリングする場合は、スケーリング操作用のノード ID を割り当てる ことができます。

ブローカーを追加または削除しても、Kafka はパーティションを自動的に再割り当てしません。これを行う最良の方法は、Cruise Control を使用することです。クラスターをスケールアップまたはスケールダウンするときに、Cruise Control の add-brokers モードと remove-brokers モードを使用できます。

  • Kafka クラスターをスケールアップした後、add-brokers モードを使用して、パーティションレプリカを既存のブローカーから新しく追加したブローカーに移動します。
  • Kafka クラスターをスケールダウンする前に、remove-brokers モードを使用して、削除されるブローカーからパーティションレプリカを移動します。

18.1. スケールダウン操作でのチェックのスキップ

デフォルトでは、Streams for Apache Kafka は、Kafka クラスターでスケールダウン操作を開始する前に、ブローカー上にパーティションレプリカが存在しないことをチェックします。このチェックは、broker 専用ロール、または broker と controller の二重のロールを実行するノードプール内のノードに適用されます。

レプリカが見つかった場合、データ損失の可能性を防ぐためにスケールダウンは行われません。クラスターをスケールダウンするには、ブローカーを再度スケールダウンする前に、ブローカー上にレプリカを残さないようにする必要があります。

ただし、このメカニズムをバイパスすることが必要な場合もあります。たとえば、新しいトピックがブローカーのレプリカを生成し続けるため、ビジー状態のクラスターではチェックを無効にする必要がある場合があります。この状況では、ブローカーがほぼ空の場合でも、スケールダウンが無期限にブロックされる可能性があります。この方法でブロックメカニズムをオーバーライドすると、影響が生じます。スケールダウンされているブローカー上にトピックが存在すると、Kafka クラスターの調整エラーが発生する可能性があります。

Kafka クラスターの Kafka リソースにアノテーションを付けると、ブロックメカニズムを回避できます。strimzi.io/skip-broker-scaledown-check アノテーションを true に設定して、リソースにアノテーションを付けます。

スケールダウン操作のチェックをスキップするためのアノテーションの追加

Copy to Clipboard Toggle word wrap
oc annotate Kafka my-kafka-cluster strimzi.io/skip-broker-scaledown-check="true"

このアノテーションは、Streams for Apache Kafka にスケールダウンチェックをスキップするように指示します。my-kafka-cluster は、特定の Kafka リソースの名前に置き換えます。

スケールダウン操作のチェックを復元するには、アノテーションを削除します。

スケールダウン操作のチェックをスキップするためのアノテーションの削除

Copy to Clipboard Toggle word wrap
oc annotate Kafka my-kafka-cluster strimzi.io/skip-broker-scaledown-check-

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.