26.2. 降级基于 KRaft 的 Kafka 集群和客户端应用程序
将基于 KRaft 的 Apache Kafka 集群的流降级为早期版本。当将 KRaft-based Streams for Apache Kafka 集群降级到较低版本时,如从 3.7.0 移到 3.6.0 时,请确保 Kafka 集群使用的元数据版本是您要降级的 Kafka 版本支持的元数据版本。您从中降级的 Kafka 版本的元数据版本不能高于您要降级的版本。
有关基于 KRaft 的降级支持和限制的详情,请参考 Apache Kafka 文档。
先决条件
- Cluster Operator 已启动并在运行。
在降级 Apache Kafka 集群的 Streams 之前,请检查以下
Kafka
资源:-
Kafka
自定义资源不包含被降级的 Kafka 版本不支持的选项。 -
spec.kafka.metadataVersion
设置为一个版本,由要降级的 Kafka 版本支持。
-
流程
更新 Kafka 集群配置。
oc edit kafka <kafka_configuration_file>
将
metadataVersion
版本改为您要降级的 Kafka 版本支持的 metadataVersion 版本;使Kafka.spec.kafka.version
保持不变。例如,如果从 Kafka 3.7.0 降级到 3.6.0 :
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: replicas: 3 metadataVersion: 3.6-IV2 1 version: 3.7.0 2 # ...
注意metadataVersion
的值必须是字符串,以防止它被解释为浮点数。-
保存更改,并等待 Cluster Operator 为
Kafka
资源更新.status.kafkaMetadataVersion
。 将
Kafka.spec.kafka.version
更改为之前的版本。例如,如果从 Kafka 3.7.0 降级到 3.6.0 :
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: replicas: 3 metadataVersion: 3.6-IV2 1 version: 3.6.0 2 # ...
如果 Kafka 版本的镜像与 Cluster Operator 的
STRIMZI_KAFKA_IMAGES
中定义的镜像不同,请更新Kafka.spec.kafka.image
。等待 Cluster Operator 更新集群。
您可以从
Kafka
资源的状态中检查降级是否已成功完成。降级所有客户端应用程序(使用者)以使用之前的客户端二进制文件版本。
Kafka 集群和客户端现在使用以前的 Kafka 版本。