搜索

26.2. 降级基于 KRaft 的 Kafka 集群和客户端应用程序

download PDF

将基于 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 版本支持。

流程

  1. 更新 Kafka 集群配置。

    oc edit kafka <kafka_configuration_file>
  2. 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
        # ...
    1
    元数据版本被改为早期 Kafka 版本支持的版本。
    2
    Kafka 版本没有改变。
    注意

    metadataVersion 的值必须是字符串,以防止它被解释为浮点数。

  3. 保存更改,并等待 Cluster Operator 为 Kafka 资源更新 .status.kafkaMetadataVersion
  4. 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
        # ...
    1
    Kafka 版本支持元数据版本。
    2
    Kafka 版本已改为新版本。
  5. 如果 Kafka 版本的镜像与 Cluster Operator 的 STRIMZI_KAFKA_IMAGES 中定义的镜像不同,请更新 Kafka.spec.kafka.image

    请参阅 第 25.2.3 节 “Kafka 版本和镜像映射”

  6. 等待 Cluster Operator 更新集群。

    您可以从 Kafka 资源的状态中检查降级是否已成功完成

  7. 降级所有客户端应用程序(使用者)以使用之前的客户端二进制文件版本。

    Kafka 集群和客户端现在使用以前的 Kafka 版本。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.