升级 Apache Kafka 版本 - Amazon Managed Streaming for Apache Kafka

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

升级 Apache Kafka 版本

您可以将现有的 MSK 集群升级为较新版本的 Apache Kafka。在升级集群的 Kafka 版本之前,请确认客户端软件版本支持新 Kafka 版本中的功能。

有关如何在升级期间使集群高度可用的信息,请参阅构建高度可用的集群

使用 Apache Kafka 版本升级 AWS 管理控制台
  1. https://console.aws.amazon.com/msk/ 打开 Amazon MSK 控制台。

  2. 在导航栏上,选择您在其中创建 MSK 集群的区域。

  3. 选择要升级的 MSK 集群。

  4. 属性选项卡上,在 Apache Kafka 版本部分中选择升级

  5. Apache Kafka 版本部分,执行以下操作:

    1. 选择 Apache Kafka 版本下拉列表中,选择要升级至的目标版本。例如,选择 3.9.x

    2. (可选)选择查看版本兼容性,验证集群的当前版本与可用升级版本之间是否兼容。然后,选择选择以继续。

      注意

      Amazon MSK 支持大多数 Apache Kafka 版本进行就地升级。但是,从 ZooKeeper基于 Kafka 的版本升级到 KRaft基于 Kafka 的版本时,必须创建一个新集群。然后,将数据复制到新的集群,并将客户端切换至新集群。

    3. (可选)选中更新集群配置复选框,应用与新版本兼容的配置更新。这就启用了新版本的功能和改进。

      如果需要保持现有的自定义配置,可跳过这一步。

      注意
      • 服务器端升级不会自动更新客户端的应用程序。

      • 为保持集群稳定性,不支持版本降级。

    4. 选择升级以开始升级过程。

使用 Apache Kafka 版本升级 AWS CLI
  1. 运行以下命令,并将 ClusterArn 替换为创建集群时所获取的 Amazon 资源名称(ARN)。如果您没有该集群的 ARN,可以通过列出所有集群来找到它。有关更多信息,请参阅 列出 Amazon MSK 集群

    aws kafka get-compatible-kafka-versions --cluster-arn ClusterArn

    此命令的输出包括您可以将集群升级到的 Apache Kafka 版本的列表。其内容类似于以下示例。

    { "CompatibleKafkaVersions": [ { "SourceVersion": "2.2.1", "TargetVersions": [ "2.3.1", "2.4.1", "2.4.1.1", "2.5.1" ] } ] }
  2. 运行以下命令,并将 ClusterArn 替换为创建集群时所获取的 Amazon 资源名称(ARN)。如果您没有该集群的 ARN,可以通过列出所有集群来找到它。有关更多信息,请参阅 列出 Amazon MSK 集群

    Current-Cluster-Version 替换为集群的当前版本。因为TargetVersion你可以从上一个命令的输出中指定任何目标版本。

    重要

    集群版本不是简单的整数。要查找集群的当前版本,请使用DescribeCluster操作或 desc ribe- AWS CLI cluster 命令。示例版本是 KTVPDKIKX0DER

    aws kafka update-cluster-kafka-version --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-kafka-version TargetVersion

    上一个命令的输出如以下 JSON 所示。

    { "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "ClusterOperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef" }
  3. 要获得update-cluster-kafka-version操作结果,请运行以下命令,ClusterOperationArn替换为在命令输出中获得的 ARN。update-cluster-kafka-version

    aws kafka describe-cluster-operation --cluster-operation-arn ClusterOperationArn

    describe-cluster-operation 命令的输出如以下 JSON 示例所示。

    { "ClusterOperationInfo": { "ClientRequestId": "62cd41d2-1206-4ebf-85a8-dbb2ba0fe259", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2021-03-11T20:34:59.648000+00:00", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_IN_PROGRESS", "OperationSteps": [ { "StepInfo": { "StepStatus": "IN_PROGRESS" }, "StepName": "INITIALIZE_UPDATE" }, { "StepInfo": { "StepStatus": "PENDING" }, "StepName": "UPDATE_APACHE_KAFKA_BINARIES" }, { "StepInfo": { "StepStatus": "PENDING" }, "StepName": "FINALIZE_UPDATE" } ], "OperationType": "UPDATE_CLUSTER_KAFKA_VERSION", "SourceClusterInfo": { "KafkaVersion": "2.4.1" }, "TargetClusterInfo": { "KafkaVersion": "2.6.1" } } }

    如果 OperationState 的值为 UPDATE_IN_PROGRESS,请等待一段时间,然后再次运行 describe-cluster-operation 命令。操作完成后,OperationState 的值变为 UPDATE_COMPLETE。由于 Amazon MSK 完成操作所需的时间各不相同,您可能需要反复检查直到操作完成。

使用 API 升级 Apache Kafka 版本
  1. 调用该GetCompatibleKafkaVersions操作以获取您可以将集群升级到的 Apache Kafka 版本列表。

  2. 调用该UpdateClusterKafkaVersion操作将集群升级到兼容的 Apache Kafka 版本之一。