Skip to main content
Migration: Confluent Platform, ZooKeeper → KRaft

Confluent Platform KRaft migration: the window is 7.6.1 to 7.9

CP 8.0 is built on Kafka 4.0 and ships without ZooKeeper — the migration is a prerequisite for the upgrade, not an option alongside it. Here is the version math, the preflight, and the backup to take before the first roll.

The Confluent Platform KRaft version window

A Confluent Platform KRaft migration is the standard in-place dual-write procedure with commercial version boundaries around it. The documented process applies to CP 7.5 through 7.9. Production migration became generally available in CP 7.6.1, and Confluent recommends running it on 7.7.0 or later — explicitly not on anything running Kafka 3.6.1 or earlier.

The forcing function is CP 8.0. It is built on Kafka 4.0 and ships without ZooKeeper entirely, so CP 7.9.x is the last release line that can run a ZooKeeper-mode cluster. Confluent's support policy gives existing ZooKeeper deployments a runway after the 7.9.0 release — two years on Standard support, three on Platinum — but that is a support-window fact, not a technical one.

CP releaseRole in the migration
7.5 – 7.6.0Documented process exists; production migration not yet GA
7.6.1Production migration generally available
7.7.0+Confluent's recommended migration baseline
7.7.5+ / 7.8.5+ / 7.9.2+Ship the kafka-migration-check preflight utility
7.9.xLast ZooKeeper-capable line — migrate here at the latest
8.0Kafka 4.0, no ZooKeeper — migration must already be done

Recent patch releases include a preflight that checks the cluster configuration and reports migration status before you commit to anything:

kafka-migration-check status --controller-config ./etc/kafka/kraft/controller.properties

If you run Confluent's tooling, both Confluent for Kubernetes and Confluent Ansible automate the procedure. The Ansible flow is two-phase and deliberately pauses at dual-write mode — the last point where rollback to ZooKeeper is possible — for validation before completing the move. The step-by-step mechanics of the underlying KIP-866 flow are in the complete ZooKeeper to KRaft migration guide; other platforms are routed from the ZooKeeper to KRaft overview. Still weighing the move itself? The KRaft vs ZooKeeper comparison settles the architecture question first.

Back up the cluster before the first roll

The in-place migration preserves topic data and committed offsets — when it goes to plan. What it cannot protect you from is an operator mistake during a fleet-wide rolling restart, faithfully replicated to every follower in milliseconds. A point-in-time backup outside the cluster is the safety net that does not depend on the migration going well.

OSO Kafka Backup connects to Confluent Platform as an ordinary Kafka client — no Confluent-specific integration needed. Use the same listener security your clients use; every key below comes from the configuration reference.

Pre-migration backup over SASL_SSL with offset headers
mode: backup
backup_id: "cp-pre-kraft-migration"

source:
bootstrap_servers:
- broker-1.cp.internal:9092
- broker-2.cp.internal:9092
security:
security_protocol: SASL_SSL
sasl_mechanism: SCRAM-SHA512
sasl_username: ${CP_SCRAM_USER}
sasl_password: ${CP_SCRAM_PASSWORD}
ssl_ca_location: /etc/kafka/ca.crt
topics:
include:
- "*"
exclude:
- "__consumer_offsets"

storage:
backend: s3
bucket: my-kafka-backups
region: us-east-1
prefix: backups/cp-pre-kraft

backup:
compression: zstd
include_offset_headers: true # Reposition consumer groups on restore
source_cluster_id: "cp-prod-zk"

A backup taken in ZooKeeper mode restores to a KRaft cluster without changes — the storage format depends on the Kafka protocol, not the metadata layer. That also gives you a second route: restore into a fresh KRaft cluster and retire the old one, the pattern in the migration use case. One scope note for CP shops: Schema Registry data is not topic data. Backing up schemas, subjects, and compatibility settings alongside topics is an Enterprise capability; the open source tool covers topic records, offsets, and configuration.

Rollback ends when dual-write ends

The rollback boundary on Confluent Platform is dual-write mode. While the cluster writes metadata to both ZooKeeper and the KRaft quorum, you can revert; once the migration finalizes and metadata writes to ZooKeeper stop, no vendor can put you back — Apache Kafka has no KRaft-to-ZooKeeper path. That is why the two-phase automation pauses there, and why the pre-migration backup should outlive the migration: after finalization it is the only copy of the cluster's pre-KRaft state. Keep the backup schedule running against the KRaft cluster from day one — the metadata mode changed, the durability question did not. The Confluent Platform integration page covers the ongoing backup setup.

Frequently asked questions

How do I migrate Confluent Platform from ZooKeeper to KRaft?

In place, using the KIP-866 dual-write procedure. The documented process applies to CP 7.5–7.9; production migration is GA from CP 7.6.1 and Confluent recommends 7.7.0 or later. Confluent for Kubernetes and Confluent Ansible both automate the flow, pausing at dual-write mode for validation before finalizing.

Do I need to migrate to KRaft before upgrading to Confluent Platform 8.0?

Yes. CP 8.0 is built on Kafka 4.0 and ships without ZooKeeper, so a ZooKeeper-mode cluster cannot upgrade to it. CP 7.9.x is the last release line that runs ZooKeeper mode; the migration must complete there or earlier.

Is the Confluent Platform KRaft migration reversible?

Only while the cluster is in dual-write mode, writing metadata to both ZooKeeper and the KRaft quorum. Once the migration finalizes, reverting is impossible — Apache Kafka has no KRaft-to-ZooKeeper path. Confluent's two-phase Ansible flow pauses at exactly that boundary for validation.

How do I check whether my Confluent Platform cluster is ready for KRaft?

Run the kafka-migration-check utility that ships with CP 7.7.5+, 7.8.5+, and 7.9.2+. It preflights the cluster configuration and reports migration status before you change anything.

Does a Kafka backup taken in ZooKeeper mode restore to a KRaft cluster?

Yes. Backups depend on the Kafka protocol, not the metadata layer, so a backup from a ZooKeeper-mode Confluent Platform cluster restores unchanged to a KRaft-mode cluster. With offset headers included, consumer groups can be repositioned on the new cluster as well.

Ready to protect your Kafka data?

Take your first backup in minutes with the open source CLI, or talk to us about Enterprise features like encryption, RBAC, and audit logging.