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

Utilice esta MSK operación de Amazon 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 MSK infraestructura. 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) o AWS CloudFormation reduzca el número de agentes del clúster aprovisionado. SDK MSKselecciona 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 MSK aprovisionados 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, incluso en los clústeres modales. KRaft

Prepárese para eliminar los corredores quitando todas las particiones

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

Puede usar Kafka admin APIs o Cruise Control para mover las particiones a otros corredores 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 bróker 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 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 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 AWS de administración
  1. Abre la MSK consola de Amazon en https://console.aws.amazon.com/msk/.

  2. Elige el MSK clúster que contiene los corredores que deseas 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.

Elimine un corredor con el AWS CLI

Ejecuta el siguiente comando y ClusterArn sustitúyelo por el nombre de recurso de Amazon (ARN) que obtuviste al crear el clúster. Si no tienes el ARN correspondiente a tu clúster, puedes encontrarlo enumerando todos los clústeres. Para obtener más información, consulta Cómo publicar MSK clústeres de Amazon. 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.

La Target-Number-of-Brokers El 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 para 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 update-broker-count operación es similar al siguienteJSON.

{ "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 el AWS API

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