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

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

升級 Apache Kafka 版本

您可以將現有的 MSK 叢集升級至較新版本的 Apache Kafka。升級叢集的 Kafka 版本之前,請確認用戶端軟體版本支援新 Kafka 版本中的功能。

如需如何在升級期間使叢集高度可用的詳細資訊,請參閱 建置高可用性叢集

使用 升級 Apache Kafka 版本 AWS Management Console
  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 型版本時,您必須建立新的叢集。然後,將您的資料複製到新叢集,並將用戶端切換到新叢集。

    3. (選用) 選擇更新叢集組態核取方塊,以套用與新版本相容的組態更新。這可啟用新版本的功能和改進。

      如果您需要維護現有的自訂組態,可以略過此步驟。

      注意
      • 伺服器端升級不會自動更新用戶端應用程式。

      • 為了維持叢集穩定性,不支援版本降級。

    4. 選擇升級以開始程序。

使用 升級 Apache Kafka 版本 AWS CLI
  1. 執行下列命令,使用您在建立叢集時獲得的 Amazon Resource Name (ARN) 取代 ClusterArn。若您沒有叢集的 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. 執行下列命令,使用您在建立叢集時獲得的 Amazon Resource Name (ARN) 取代 ClusterArn。若您沒有叢集的 ARN,可透過列出所有叢集來找到該 ARN。如需詳細資訊,請參閱列出 Amazon MSK 叢集

    將叢集目前版本取代為 Current-Cluster-Version。對於 TargetVersion,您可以指定前一個命令輸出中的任何目標版本。

    重要

    叢集版本不是簡單的整數。若要尋找叢集的目前版本,請使用 DescribeCluster 操作或 describe-cluster AWS CLI 命令。範例版本為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 操作的結果,請執行下列命令,使用您在 update-cluster-kafka-version 命令輸出中取得的 ARN 取代 ClusterOperationArn

    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 版本。