第 8 章 升级 AMQ Streams

AMQ Streams 可以升级至 1.8 版本,以利用新功能、增强功能、性能改进和安全选项。

作为升级的一部分,您要将 Kafka 升级到最新支持的版本。每个 Kafka 版本都会为您的 AMQ Streams 部署带来新功能、改进和程序错误修正。

如果您遇到较新版本的问题,AMQ Streams 可以 降级 到以前的版本。

发布的 AMQ Streams 版本列在红帽客户门户网站 的产品下载部分

升级路径

可以使用两种升级路径:

incremental
将 AMQ Streams 从以前的次版本升级到 1.8 版本。
multi-version

在单个升级(跳过一个或多个中间版本)中将 AMQ Streams 从旧版本升级到 1.8。

例如,从 AMQ Streams 1.5 直接升级到 AMQ Streams 1.7。

从早于 1.7 的版本升级

AMQ Streams 1.7 中引入了所有自定义资源的 v1beta2 API 版本。对于 AMQ Streams 1.8,v1alpha1v1beta1 API 版本已从除 KafkaTopic 和 Kafka User 以外的所有 AMQ Streams 自定义资源中删除。

如果您要从 1.7 版本之前的 AMQ Streams 版本升级:

  1. 将 AMQ Streams 升级到 1.7
  2. 将自定义资源转换为 v1beta2
  3. 将 AMQ Streams 升级到 1.8 或更新版本
注意

作为替代方案,您可以从 1.7 版本安装自定义资源,转换资源,然后升级到 1.8 或更高版本。

kafka 版本支持

Kafka 版本 表列出了 AMQ Streams 1.8 支持的 Kafka 版本。在表中:

  • 生产环境支持 最新的 Kafka 版本。
  • 以前的 Kafka 版本只支持升级到 AMQ Streams 1.8。

在开始 AMQ Streams 升级过程前,决定要升级到的 Kafka 版本。

注意

只要您的 AMQ Streams 版本支持,就可以升级到更高的 Kafka 版本。在某些情况下,您还可以降级到以前支持的 Kafka 版本。

停机时间和可用性

如果针对高可用性配置了主题,则升级 AMQ Streams 应该不会给消费者和生产者造成从这些主题中发布和读取数据的停机时间。高可用性主题的复制因子至少为 3 个,分区在代理之间均匀分布。

升级 AMQ Streams 会触发滚动更新,所有代理都会在流程的不同阶段重新启动。在滚动更新过程中,并非所有代理都在线,因此 集群的整体可用性 会临时降低。减少集群可用性会增加代理失败会导致信息丢失的几率。

8.1. 所需的升级顺序

要在没有停机的情况下升级代理和客户端,您必须 按照以下顺序完成 Strimzi 升级过程:

  1. 更新现有的自定义资源,以支持 v1beta2 API 版本。

    在升级到 AMQ Streams 1.7 后进行此操作,但在升级到 AMQ Streams 1.8 或更高版本之前。对于从版本 1.7 之前的多版本升级:

    1. 跳过此步骤,再继续下列步骤以升级到 1.7 版本。
    2. 返回到此步骤并执行升级部分中的所有步骤,以升级到 1.8 或更新版本。
  2. 将 Cluster Operator 更新至新的 AMQ Streams 版本。

    您采取的方法取决于如何 部署 Cluster Operator

    • 如果使用安装 YAML 文件部署 Cluster Operator,请通过修改 Operator 安装文件来执行升级,如 升级 Cluster Operator 中所述。
    • 如果您从 OperatorHub 部署 Cluster Operator,请使用 Operator Lifecycle Manager(OLM)将 AMQ Streams Operator 的更新频道改为新的 AMQ Streams 版本。

      根据您选择的升级策略,在更新频道后,可以:

      • 启动自动升级
      • 安装开始前需要批准手动升级

        如需有关使用 OperatorHub 升级 Operator 的更多信息,请参阅 OpenShift 文档中的 升级已安装的 Operator

  3. 将所有 Kafka 代理和客户端应用程序升级到最新支持的 Kafka 版本。

可选:增量合作重新平衡升级

考虑升级消费者和 Kafka Streams 应用程序,以使用 增量合作重新平衡 协议进行分区重新平衡。