从 ZooKeeper 迁移到 KRaft 模式
从 Kafka 4.0 开始,将不再支持 ZooKeeper 模式。operator 也将在未来版本中移除对 ZooKeeper 模式的支持。建议尽快将您的 Kafka 实例迁移到 KRaft 模式。
重要版本说明
- v4.2.x operator 仅支持 KRaft 模式:v4.2.x 中已完全移除 ZooKeeper 模式。
- 升级到 v4.2.x 前必须完成迁移:如果计划升级到 Alauda Streaming Service for Kafka v4.2.x,必须先使用 v4.1.x operator 将所有实例迁移到 KRaft 模式。
- v4.2.x 不支持迁移操作:v4.2.x operator 不支持 ZooKeeper 模式,无法执行从 ZooKeeper 到 KRaft 的迁移,必须在 v4.1.x 版本时完成迁移。
迁移注意事项
- 服务中断:迁移过程中可能会导致短暂的服务中断。
- 连接变更:迁移后,pod 名称和服务(svc)名称将发生变化,可能导致连接地址变动。迁移完成后务必及时更新实例的访问地址。如果您通过 bootstrap 或 external-bootstrap 服务连接 Kafka 实例,访问地址将保持不变,无需更新。
- 不可回滚:迁移到 KRaft 后,不支持回滚到 ZooKeeper 模式。
前提条件
- Kafka 版本必须为 3.8 或更高
- 通知消费者/生产者可能出现的临时中断
- 确保 Kafka 集群健康且正常运行
- 验证当前 Kafka 实例的模式: 该命令可帮助您识别仍处于 ZooKeeper 模式且需要迁移的实例。
迁移步骤
- 首先,检查 Kafka 实例当前的模式:
- 通过 patch 命令将 Kafka 实例切换到 KRaft 模式:
- 监控迁移状态:
状态将依次为:
Migrating:迁移中Active:迁移成功完成
迁移后步骤
迁移注意事项
如果您的应用未使用 bootstrap 或 external-bootstrap 服务(例如,无论是内部访问还是外部访问,均使用 <name>-kafka-<i>.<namespace>.svc.cluster.local 相关的 IP 和端口),则必须更新其连接配置。
-
验证客户端连接性与数据完整性:
- 确认所有生产者和消费者应用均能成功连接 Kafka 集群(检查日志中是否有连接错误、超时或认证问题)。
- 进行测试生产和消费:通过生产者发送测试消息,确认消费者能正确接收且无数据丢失或损坏。
- 验证核心业务主题可访问且保留了迁移前的所有数据。
-
监控性能:
- 关注 controller 的性能表现
- 监控分区处理和元数据操作情况