Мы вручную пробуем Zookeeper миграции Kafka Kraft в нашей среде K8S. Для этого первоначальным шагом является развертывание контроллера Kraft в режиме миграции. Мы использовали configmaps для предоставления конфигурации Contureller.properties во время запуска сервера. < /P>
Наша конфигурация: < /p>
# {% raw %}
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kraft-controller-config
namespace: cgbu-ums-dev
data:
controller.properties: |
zookeeper.metadata.migration.enable=true
zookeeper.connect=zookeeper:2181
process.roles=controller
node.id=0
controller.quorum.voters=0@kraft-controller-0.kraft-controller:9092
#controller.quorum.bootstrap.servers=kraft-controller:9092
listeners=CONTROLLER://kraft-controller-0:9092
advertised.listeners=CONTROLLER://kraft-controller-0:9092
controller.listener.names=CONTROLLER
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/var/lib/kafka/data/kraft-controller-0
num.partitions=1
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
share.coordinator.state.topic.replication.factor=1
share.coordinator.state.topic.min.isr=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
# {% endraw %}
< /code>
on Server Start Я получаю следующую ошибку: < /p>
[2025-05-06 05:25:13,768] ERROR Encountered fatal fault: exception while completing controller activation (org.apache.kafka.server.fault.ProcessTerminatingFaultHandler)
java.lang.RuntimeException: Should not have ZK migrations enabled on a cluster that was created in KRaft mode.
at org.apache.kafka.controller.ActivationRecordsGenerator.recordsForNonEmptyLog(ActivationRecordsGenerator.java:168)
at org.apache.kafka.controller.ActivationRecordsGenerator.generate(ActivationRecordsGenerator.java:234)
at org.apache.kafka.controller.QuorumController$CompleteActivationEvent.generateRecordsAndResult(QuorumController.java:1243)
at org.apache.kafka.controller.QuorumController$ControllerWriteEvent.run(QuorumController.java:791)
at org.apache.kafka.queue.KafkaEventQueue$EventContext.run(KafkaEventQueue.java:132)
at org.apache.kafka.queue.KafkaEventQueue$EventHandler.handleEvents(KafkaEventQueue.java:215)
at org.apache.kafka.queue.KafkaEventQueue$EventHandler.run(KafkaEventQueue.java:186)
at java.base/java.lang.Thread.run(Thread.java:842)
Первоначально я запускал контроллер Kraft, сначала без миграции - он начался успешно, затем я изменил ConfigMap и добавил свойства миграции и сделал Kubectl Rellout . При перезапуске я получил ту же ошибку, которая, как я полагаю, произошла, потому что POD начался в режиме Pure Kraft, но, когда позже сказали для миграции, в форматировании свойства Logs.dir может возникнуть проблема, поэтому оно не удалось. Нужна помощь в выяснении, почему это произошло и как это исправить.env:
- name: ZK_REPLICAS
value: "3"
- name: ZK_CLIENT_PORT
value: "2181"
- name: ZK_SERVER_PORT
value: "2888"
- name: ZK_ELECTION_PORT
value: "3888"
- name: ZK_TICK_TIME
value: "2000"
- name: ZK_INIT_LIMIT
value: "10"
- name: ZK_SYNC_LIMIT
value: "5"
- name: ZK_MAX_CLIENT_CNXNS
value: "500"
- name: ZK_SNAP_RETAIN_COUNT
value: "3"
- name: ZK_PURGE_INTERVAL
value: "0"
- name: LOG4J_FORMAT_MSG_NO_LOOKUPS
value: "true"
Подробнее здесь: https://stackoverflow.com/questions/796 ... ler-in-k8s