Eliminación de un agente de un clúster de Amazon MSK - Amazon Managed Streaming para Apache Kafka

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.

Eliminación de un agente de un clúster de Amazon MSK

Utilice esta operación de Amazon MSK cuando quiera eliminar agentes de los clústeres aprovisionados por Amazon Managed Streaming for Apache Kafka (MSK). Puede reducir la capacidad de almacenamiento y cómputo de su clúster eliminando grupos de agentes, sin que ello afecte a la disponibilidad, ponga en riesgo la durabilidad de los datos ni interrumpa sus aplicaciones de flujo de datos.

Puede agregar más agentes a su clúster para gestionar el aumento del tráfico y eliminarlos cuando el tráfico disminuya. Con la capacidad de agregar y eliminar agentes, podrá utilizar mejor la capacidad de su clúster y optimizar los costos de infraestructura de MSK. La eliminación de un agente le permite controlar a nivel de agente la capacidad del clúster existente para adaptarse a sus necesidades de carga de trabajo y evitar la migración a otro clúster.

Utilice la AWS consola, la interfaz de línea de comandos (CLI), el SDK o AWS CloudFormation reduzca el número de agentes del clúster aprovisionado. MSK selecciona los agentes que no tienen particiones (excepto en el caso de temas canario) e impide que las aplicaciones generen datos para esos agentes, al tiempo que los elimina del clúster de forma segura.

Si quiere reducir el almacenamiento y la computación de un clúster, debe eliminar un agente por zona de disponibilidad. Por ejemplo, puede eliminar dos agentes de un clúster de dos zonas de disponibilidad o tres agentes de un clúster de tres zonas de disponibilidad en una sola operación de eliminación de agentes.

Para obtener información acerca de cómo volver a equilibrar particiones después de eliminar agentes de un clúster, consulte Reasignar particiones.

Puede eliminar agentes de todos los clústeres de MSK aprovisionados basados en M5 y M7g, independientemente del tamaño de la instancia.

En las versiones 2.8.1 y posteriores de Kafka, incluso en los clústeres en modo, se puede eliminar el KRaft agente.

Prepárese para eliminar los agentes quitando todas las particiones

Antes de iniciar el proceso de eliminación de los agentes, mueva primero todas las particiones, excepto unas de los temas __amazon_msk_canary y __amazon_msk_canary_state de los agentes que planea eliminar. Se trata de temas internos que Amazon MSK crea para las métricas de estado y diagnóstico del clúster.

Puede usar Kafka admin APIs o Cruise Control para mover las particiones a otros corredores que desee conservar en el clúster. Consulte Reasignación de particiones.

Ejemplo de proceso de eliminación de particiones

Esta sección es un ejemplo de cómo eliminar las particiones del agente que desea eliminar. Suponga que tiene un clúster con 6 agentes, 2 agentes en cada zona de disponibilidad y que tiene cuatro temas:

  • __amazon_msk_canary

  • __consumer_offsets

  • __amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2

  • msk-brk-rmv

  1. Cree un equipo cliente tal y como se describe en Creación de un equipo cliente.

  2. Tras configurar el equipo cliente, ejecute el siguiente comando para enumerar todos los temas disponibles en el clúster.

    ./bin/kafka-topics.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --list

    En este ejemplo, vemos cuatro nombres de temas: __amazon_msk_canary, __consumer_offsets, __amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2 y msk-brk-rmv.

  3. Cree un archivo json llamado topics.json en el equipo cliente y agregue todos los nombres de los temas de usuario, tal y como se muestra en el siguiente código de ejemplo. No es necesario incluir el nombre del tema __amazon_msk_canary, ya que se trata de un tema administrado por un servicio que se moverá automáticamente cuando sea necesario.

    { "topics": [ {"topic": "msk-brk-rmv"}, {"topic": "__consumer_offsets"}, {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"} ], "version":1 }
  4. Ejecute el siguiente comando para generar una propuesta para mover las particiones a solo 3 agentes de los 6 agentes del clúster.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --topics-to-move-json-file topics.json --broker-list 1,2,3 --generate
  5. Cree un archivo llamado reassignment-file.json y copie el comando proposed partition reassignment configuration que obtuvo de arriba.

  6. Ejecute el siguiente comando para mover las particiones que especificó en el reassignment-file.json.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --execute

    El resultado tiene un aspecto similar al siguiente:

    Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
  7. Ejecute el siguiente comando para verificar que todas las particiones se han movido.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --reassignment-json-file reassignment-file.json --verify

    El resultado tiene un aspecto similar al siguiente. Supervise el estado hasta que todas las particiones de los temas solicitados se hayan reasignado correctamente:

    Status of partition reassignment: Reassignment of partition msk-brk-rmv-0 is completed. Reassignment of partition msk-brk-rmv-1 is completed. Reassignment of partition __consumer_offsets-0 is completed. Reassignment of partition __consumer_offsets-1 is completed.
  8. Cuando el estado indique que se ha completado la reasignación de particiones para cada partición, supervise las métricas UserPartitionExists durante 5 minutos para asegurarse de que muestren 0 a los agentes desde los que ha movido las particiones. Tras confirmarlo, puede proceder a eliminar el agente del clúster.

Elimine un corredor con la consola AWS de administración

Para eliminar corredores con la consola de AWS administración
  1. Abra la consola de Amazon MSK en https://console.aws.amazon.com/msk/.

  2. Elija el clúster de MSK que contiene los agentes que desea eliminar.

  3. En la página de detalles del clúster, pulse el botón Acciones y seleccione la opción Editar número de agentes.

  4. Introduzca el número de agentes que desea que el clúster tenga por zona de disponibilidad. La consola resume el número de agentes de todas las zonas de disponibilidad que se eliminarán. Asegúrese de que es lo que quiere.

  5. Elija Guardar cambios.

Para evitar la eliminación accidental de agentes, la consola le pide que confirme que desea eliminar agentes.

Eliminar un corredor con la AWS CLI

Ejecute el siguiente comando, reemplazando ClusterArnpor 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. Reemplace Current-Cluster-Version con la versión actual del clúster.

importante

Las versiones de clúster no son enteros simples. Para encontrar la versión actual del clúster, utilice la DescribeClusteroperación o el comando AWS CLI describe-cluster. Un ejemplo de ID de versión es KTVPDKIKX0DER.

El Target-Number-of-Brokers parámetro representa el número total de nodos intermediarios que desea que tenga el clúster cuando la operación se complete correctamente. El valor que especifique Target-Number-of-Brokers debe ser un número entero inferior al número actual de corredores del clúster. También debe ser un múltiplo del número de zonas de disponibilidad.

aws kafka update-broker-count --cluster-arn ClusterArn --current-version Current-Cluster-Version --target-number-of-broker-nodes Target-Number-of-Brokers

El resultado de esta operación update-broker-count se parece al siguiente JSON.

{ "ClusterOperationInfo": { "ClientRequestId": "c0b7af47-8591-45b5-9c0c-909a1a2c99ea", "ClusterArn": "arn:aws:kafka:us-east-1:012345678012:cluster/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2", "CreationTime": "2019-09-25T23:48:04.794Z", "OperationArn": "arn:aws:kafka:us-east-1:012345678012:cluster-operation/exampleClusterName/abcdefab-1234-abcd-5678-cdef0123ab01-2/0123abcd-abcd-4f7f-1234-9876543210ef", "OperationState": "UPDATE_COMPLETE", "OperationType": "DECREASE_BROKER_COUNT", "SourceClusterInfo": { "NumberOfBrokerNodes": 12 }, "TargetClusterInfo": { "NumberOfBrokerNodes": 9 } } }

En esta salida, OperationType es DECREASE_BROKER_COUNT. Si OperationState tiene el valor UPDATE_IN_PROGRESS, espere un rato y vuelva a ejecutar el comando describe-cluster-operation.

Elimine un corredor con la AWS API

Para eliminar a los agentes de un clúster mediante la API, consulte la referencia UpdateBrokerCountde la API Amazon Managed Streaming for Apache Kafka.