Forty clusters, one migration window at a time
A retailer runs dozens of self-managed Kafka 3.x clusters on ZooKeeper. Kafka 4.0 has no ZooKeeper support, so each cluster needs its own KRaft migration before it can upgrade.
Challenge
The migration is online, but its final step cannot be rolled back, so each cluster needs a change window. With peak-season freezes, the fleet takes quarters to move while the waiting clusters run unpatched brokers and ensembles.
Environment
Apache Kafka 3.6 to 3.9 on ZooKeeper 3.8, self-managed on Kubernetes and VMs.
Approach
OSSeva patches the Kafka brokers and ZooKeeper ensembles that are waiting, and runs the KRaft migration cluster by cluster: controller quorum, migration mode, broker rolls, finalize, then the 4.x upgrade.
What this delivers
Every cluster stays patched until its turn, and each migration follows the same tested runbook.