Eliminar un bróker de un clúster de Amazon MSK - Transmisión gestionadada de Amazon 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.

Eliminar un bróker de un clúster de Amazon MSK

Utilice esta operación de Amazon MSK cuando desee 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 intermediarios, sin que ello afecte a la disponibilidad, no ponga en riesgo la durabilidad de los datos ni interrumpa sus aplicaciones de streaming de datos.

Puede añadir 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 añadir y eliminar agentes, podrá utilizar mejor la capacidad de su clúster y optimizar los costes 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 corredores que no tienen particiones (excepto en el caso de Canary Topics) e impide que las aplicaciones generen datos para esos corredores, 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 sobre cómo reequilibrar las particiones después de eliminar los corredores de un clúster, consulteReasignar particiones.

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

La eliminación de agentes está permitida en las versiones 2.8.1 y posteriores de Kafka, incluidos los clústeres en modo KrAFT.

Prepárese para eliminar los corredores quitando todas las particiones

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

Puede utilizar las API de administración de Kafka o Cruise Control para transferir las particiones a otros agentes que desee conservar en el clúster. Consulte Reasignar particiones.

Ejemplo de proceso para eliminar 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 corredores, 2 corredores 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 una máquina cliente tal y como se describe en Crear una máquina cliente.

  2. Tras configurar la máquina 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, ymsk-brk-rmv.

  3. Cree un archivo json llamado topics.json en la máquina cliente y añada todos los nombres de los temas de usuario, tal y como se muestra en el siguiente ejemplo de código. No es necesario incluir el nombre del __amazon_msk_canary tema, ya que se trata de un tema gestionado 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 corredores de los 6 corredores 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. Crea un archivo llamado reassignment-file.json y copia el comando proposed partition reassignment configuration que obtuviste de arriba.

  6. Ejecute el siguiente comando para mover las particiones que especificó enreassignment-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 comprobar 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 UserPartitionExists métricas durante 5 minutos para asegurarse de que se muestran 0 a los agentes desde los que ha movido las particiones. Tras confirmarlo, puede proceder a eliminar el bróker 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 corredores que desee 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 corredores.

  4. Introduzca el número de agentes que desea que tenga el clúster 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 un corredor, la consola le pide que confirme que desea eliminar un corredor.

Eliminar un corredor con la AWS CLI

Ejecute el siguiente comando y ClusterArn sustitúyalo 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, consulta Cómo publicar clústeres de Amazon MSK. Current-Cluster-VersionSustitúyalo por la versión actual del clúster.

importante

Las versiones de clúster no son enteros simples. Para buscar 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 parámetro Target-Number-of-Brokers representa el número total de nodos de agente que desea que tenga el clúster cuando esta operación se complete correctamente. El valor que especifique para el número objetivo de corredores 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 bróker con la API AWS

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