9.2.2. 降级 Kafka 代理和客户端应用程序
此流程描述了如何将 AMQ Streams Kafka 集群降级为 Kafka 的较低(以前的)版本,如从 2.8.0 降级到 2.7.0。
先决条件
对于要降级的 Kafka 资源,检查:
- 重要信息: Kafka 版本兼容性.
- 支持两个 Kafka 版本的 Cluster Operator 已启动且正在运行。
-
Kafka.spec.kafka.config不包含 Kafka 版本不支持的选项。 -
Kafka.spec.kafka.config有一个log.message.format.version和inter.broker.protocol.version,它被降级到的 Kafka 版本支持。
流程
更新 Kafka 集群配置。
oc edit kafka KAFKA-CONFIGURATION-FILE
oc edit kafka KAFKA-CONFIGURATION-FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 更改
Kafka.spec.kafka.version以指定上一版本。例如,如果从 Kafka 2.8.0 降级到 2.7.0:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您必须将
log.message.format.version和inter.broker.protocol.version的值格式化为字符串,以防止将其解释为浮动点数。如果 Kafka 版本的镜像与 Cluster Operator 的
STRIMZI_KAFKA_IMAGES中定义的镜像不同,请更新Kafka.spec.kafka.image。保存并退出编辑器,然后等待滚动更新完成。
检查日志中的更新,或者查看 pod 状态转换:
oc logs -f CLUSTER-OPERATOR-POD-NAME | grep -E "Kafka version downgrade from [0-9.]+ to [0-9.]+, phase ([0-9]+) of \1 completed"
oc logs -f CLUSTER-OPERATOR-POD-NAME | grep -E "Kafka version downgrade from [0-9.]+ to [0-9.]+, phase ([0-9]+) of \1 completed"Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pod -w
oc get pod -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow 检查 Cluster Operator 日志中的
INFO级别信息:Reconciliation #NUM(watch) Kafka(NAMESPACE/NAME): Kafka version downgrade from FROM-VERSION to TO-VERSION, phase 1 of 1 completed
Reconciliation #NUM(watch) Kafka(NAMESPACE/NAME): Kafka version downgrade from FROM-VERSION to TO-VERSION, phase 1 of 1 completedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 降级所有客户端应用程序(使用者)以使用先前版本的客户端二进制文件。
Kafka 集群和客户端现在使用以前的 Kafka 版本。
如果您要恢复到早于 0.22 的 AMQ Streams 版本(使用 ZooKeeper 存储主题),请从 Kafka 集群中删除内部主题存储主题。
oc run kafka-admin -ti --image=registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --delete
oc run kafka-admin -ti --image=registry.redhat.io/amq7/amq-streams-kafka-28-rhel7:1.8.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --deleteCopy to Clipboard Copied! Toggle word wrap Toggle overflow