Could someone please help answer this question? I would really appreciate
it—thank you!

Jianbin Chen <[email protected]> 于2026年1月28日周三 16:19写道:

>
>
> ---------- Forwarded message ---------
> 发件人: Jianbin Chen <[email protected]>
> Date: 2026年1月28日周三 09:49
> Subject: Inquiry about migrating from ZooKeeper to KRaft
> To: <[email protected]>
>
>
> Hi everyone,
>
> I’m trying to migrate a test cluster from ZooKeeper to KRaft in-place
> (i.e., not provisioning three new controller-only nodes first and then
> pointing the existing brokers to them). I hit a problem and would
> appreciate any pointers.
>
> What I did
> - Enabled zookeeper.metadata.migration.enable on each existing broker and
> set the controller quorum settings so each broker acts as a
> controller+broker (process.roles=broker,controller).
> - Rolled the three nodes.
>
> Relevant broker configuration (each broker has similar config; example
> shown):
>
> ```
> process.roles=broker,controller
> node.id=7
> broker.id=7
> zookeeper.metadata.migration.enable=true
> controller.quorum.voters=7@broker1:9093,6@broker2:9093,4@broker3:9093
> controller.quorum.bootstrap.servers=broker1:9093,broker2:9093,broker3:9093
> zookeeper.connect=zk1:2181,zk2:2181,zk3:2181
> controller.listener.names=CONTROLLER
> group.initial.rebalance.delay.ms=0
> listeners=SSL://ip:9092,PLAINTEXT://ip:9192,CONTROLLER://ip:9093
>
> listener.security.protocol.map=SSL:SSL,PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
> ```
>
> Observed behavior
> After rolling restart, the controller logs show the quorum is ready for
> migration, but the controller repeatedly logs that no brokers are known to
> KRaft:
>
> ```
> [2026-01-27 17:47:15,626] INFO [KRaftMigrationDriver id=7] Controller
> Quorum is ready for Zk to KRaft migration. Now waiting for ZK brokers.
> (org.apache.kafka.metadata.migration.KRaftMigrationDriver)
> [2026-01-27 17:47:15,627] INFO [KRaftMigrationDriver id=7] 7 transitioning
> from WAIT_FOR_CONTROLLER_QUORUM to WAIT_FOR_BROKERS state
> (org.apache.kafka.metadata.migration.KRaftMigrationDriver)
> [2026-01-27 17:47:15,627] INFO [KRaftMigrationDriver id=7] No brokers are
> known to KRaft, waiting for brokers to register.
> (org.apache.kafka.metadata.migration.KRaftMigrationDriver)
> [2026-01-27 17:47:15,726] INFO [KRaftMigrationDriver id=7] No brokers are
> known to KRaft, waiting for brokers to register.
> (org.apache.kafka.metadata.migration.KRaftMigrationDriver)
> [2026-01-27 17:47:15,925] INFO [KRaftMigrationDriver id=7] No brokers are
> known to KRaft, waiting for brokers to register.
> ```
> It appears that the controller quorum becomes ready for migration, but the
> migration driver repeatedly logs "No brokers are known to KRaft, waiting
> for brokers to register." and does not make progress.
>
> My current understanding is as follows:
> - Migration from ZooKeeper to KRaft normally involves standing up a
> separate controller-only KRaft cluster first, then updating the existing
> brokers to point to that controller cluster (via
> controller.quorum.bootstrap.servers) and enabling
> zookeeper.metadata.migration.enable.
> - Performing an in-place migration (having the existing brokers also act
> as controllers) seems risky because controller quorum elections require a
> majority of controller nodes. For example, with topics having
> replication.factor=2, you may need to restart two brokers to form the new
> controller quorum, which would make RF=2 topics unavailable during the
> migration.
> - Therefore I am unsure whether my understanding is correct (i.e.,
> in-place migration is unsafe or unsupported for production-like setups) or
> whether Kafka actually supports in-place migration and I have a
> configuration error.
>
> I would greatly appreciate it if you could confirm which is the case. If
> in-place migration is supported, could you please advise what configuration
> or sequence I am missing so that brokers register with KRaft correctly? If
> in-place migration is not recommended, could you recommend the safest
> procedure to migrate a test cluster while minimizing downtime for producers
> and consumers?
>
> Thank you very much for your time and assistance.
>
> Best regards,
> Jianbin Chen
>

Reply via email to