5.4. ブローカーロールとコントローラーロールの分離
この手順では、別々のロールを持つノードを使用するように移行する方法を説明します。Kafka クラスターで、コントローラーとブローカーのロールを持つデュアルロールノードを使用している場合は、別々のロールを持つノードを使用するように移行できます。
これを行うには、新しいコントローラーを追加し、デュアルロールノード上のコントローラーをスケールダウンしてから、デュアルロールノードをブローカー専用に切り替えます。
この例では、3 つのデュアルロールノードを更新します。
前提条件
- Streams for Apache Kafka (2.9 以上) が 各ホストにインストールされており、設定ファイルが使用可能である。
-
controller.quorum.bootstrap.serversプロパティーを使用して、コントローラークォーラムが動的スケーリング用に設定されている。 - Cruise Control がインストールされている。
- クラスターのバックアップが推奨されます。
手順
3 つの新しいコントローラー専用ノードのクォーラムを追加します。
controller.quorum.bootstrap.serversプロパティーを更新して、コントローラーをコントローラークォーラムに統合します。詳細は、「新しいコントローラーの追加」 を参照してください。
kafka-metadata-quorum.shツールを使用して、コントローラークォーラムからデュアルロールコントローラーを削除します。詳細は、「コントローラーの削除」 を参照してください。
各デュアルロールノードについて、1 つずつ次の手順を実行します。
デュアルロールノードを停止します。
./bin/kafka-server-stop.shノード設定の
process.roles=broker, controllerをprocess.roles=brokerに切り替えて、デュアルロールノードをブローカーノードとしてのみ機能するように設定します。ブローカー設定の例
node.id=1 process.roles=broker log.dirs=/var/lib/kafka listeners=PLAINTEXT://0.0.0.0:9092 controller.listener.names=CONTROLLER listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT controller.quorum.bootstrap.servers=localhost:9090, localhost:9091, localhost:9092 inter.broker.listener.name=PLAINTEXT num.partitions=1 auto.create.topics.enable=false default.replication.factor=3 min.insync.replicas=2 #...以前に二重の役割を果たしていたブローカーノードを再起動します。
./bin/kafka-server-start.sh -daemon ./config/kraft/server.properties