

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Actualización de la versión de Apache Kafka
<a name="version-upgrades"></a>

Puede actualizar un clúster de Amazon MSK existente a una versión más reciente de Apache Kafka. Antes de actualizar la versión de Kafka del clúster, verifique que la versión del software del lado del cliente admita las características de la nueva versión de Kafka.

Para obtener información sobre cómo mantener un clúster con alta disponibilidad durante una actualización, consulte [Crear clústeres de alta disponibilidad](bestpractices.md#ensure-high-availability).

**Actualice la versión de Apache Kafka con el Consola de administración de AWS**

1. Abra la consola de Amazon MSK en [https://console.aws.amazon.com/msk/](https://console.aws.amazon.com/msk/).

1. En la barra de navegación, seleccione la región en la que creó el clúster de MSK.

1. Seleccione el clúster de Amazon MSK que desea actualizar.

1. En la pestaña **Propiedades**, elija **Actualizar** en la sección **Versión de Apache Kafka**.

1. En la sección **Versión de Apache Kafka**, realice lo siguiente:

   1. En la lista desplegable *Elegir versión de Apache Kafka*, seleccione la versión de destino a la que desea realizar la actualización. En este ejemplo, elija **3.9.x**.

   1. (Opcional) Seleccione **Ver compatibilidad de versiones** para verificar la compatibilidad entre la versión actual del clúster y las versiones disponibles para la actualización. Luego, seleccione **Elegir** para continuar.
**nota**  
Amazon MSK admite actualizaciones de versión en el lugar para la mayoría de las versiones de Apache Kafka. Sin embargo, al actualizar de una versión ZooKeeper basada en Kafka a una versión KRaft basada en Kafka, debe crear un clúster nuevo. A continuación, copie los datos en el clúster nuevo y cambie los clientes para que utilicen dicho clúster.

   1. (Opcional) Seleccione la casilla **Actualizar la configuración del clúster** para aplicar actualizaciones de configuración compatibles con la nueva versión. Esto habilita las nuevas características y mejoras de la versión.

      Puede omitir este paso si necesita mantener las configuraciones personalizadas existentes.
**nota**  
Las actualizaciones del servidor no actualizan automáticamente las aplicaciones cliente.
Para mantener la estabilidad del clúster, no se admiten reducciones de versión.

   1. Seleccione **Actualizar versión** para iniciar el proceso.

**Actualice la versión de Apache Kafka mediante el AWS CLI**

1. Ejecute el siguiente comando, reemplazando *ClusterArn*por el nombre de recurso de Amazon (ARN) que obtuvo al crear el clúster. Si no tiene el ARN para su clúster, puede encontrarlo enumerando todos los clústeres. Para obtener más información, consulte [Enumeración de clústeres de Amazon MSK](msk-list-clusters.md).

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

   La salida de este comando incluye una lista de las versiones de Apache Kafka a las que puede actualizar el clúster. Es similar al ejemplo siguiente.

   ```
   {
       "CompatibleKafkaVersions": [
           {
               "SourceVersion": "2.2.1",
               "TargetVersions": [
                   "2.3.1",
                   "2.4.1",
                   "2.4.1.1",
                   "2.5.1"
               ]
           }
       ]
   }
   ```

1. Ejecute el siguiente comando, reemplazando *ClusterArn*por el nombre de recurso de Amazon (ARN) que obtuvo al crear el clúster. Si no tiene el ARN para su clúster, puede encontrarlo enumerando todos los clústeres. Para obtener más información, consulte [Enumeración de clústeres de Amazon MSK](msk-list-clusters.md).

   Reemplace *Current-Cluster-Version* con la versión actual del clúster. Pues *TargetVersion* puede especificar cualquiera de las versiones de destino a partir del resultado del comando anterior.
**importante**  
Las versiones de clúster no son enteros simples. Para encontrar la versión actual del clúster, utilice la [DescribeCluster](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn.html#DescribeCluster)operación o el comando [AWS CLI describe-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html). Un ejemplo de ID de versión es `KTVPDKIKX0DER`.

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

   El resultado del comando anterior tiene un aspecto similar al siguiente 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"
   }
   ```

1. Para obtener el resultado de la `update-cluster-kafka-version` operación, ejecute el siguiente comando y *ClusterOperationArn* reemplácelo por el ARN que obtuvo en el resultado del `update-cluster-kafka-version` comando.

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

   El resultado de este comando `describe-cluster-operation` tendrá un aspecto similar al siguiente.

   ```
   {
       "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"
           }
       }
   }
   ```

   Si `OperationState` tiene el valor `UPDATE_IN_PROGRESS`, espere un rato y vuelva a ejecutar el comando `describe-cluster-operation`. Cuando se completa la operación, el valor de `OperationState` se convierte en `UPDATE_COMPLETE`. Como el tiempo necesario para que Amazon MSK complete la operación varía, es posible que tenga que comprobarlo varias veces hasta que se complete la operación. 

**Actualización de la versión de Apache Kafka mediante la API**

1. Invoque la [GetCompatibleKafkaVersions](https://docs.aws.amazon.com//msk/1.0/apireference/compatible-kafka-versions.html#GetCompatibleKafkaVersions)operación para obtener una lista de las versiones de Apache Kafka a las que puede actualizar el clúster.

1. Ejecute la [UpdateClusterKafkaVersion](https://docs.aws.amazon.com//msk/1.0/apireference/clusters-clusterarn-version.html#UpdateClusterKafkaVersion)operación para actualizar el clúster a una de las versiones compatibles de Apache Kafka.