Remover um agente de um cluster Amazon MSK - Amazon Managed Streaming for Apache Kafka

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Remover um agente de um cluster Amazon MSK

Use essa operação do Amazon MSK quando quiser remover corretores dos clusters provisionados pelo Amazon Managed Streaming for Apache Kafka (MSK). Você pode reduzir a capacidade de armazenamento e computação do seu cluster removendo conjuntos de corretores, sem impacto na disponibilidade, risco de durabilidade de dados ou interrupção em seus aplicativos de streaming de dados.

Você pode adicionar mais agentes ao seu cluster para lidar com o aumento do tráfego e remover agentes quando o tráfego diminuir. Com a capacidade de adição e remoção de corretores, você pode utilizar melhor sua capacidade de cluster e otimizar seus custos de infraestrutura MSK. A remoção do agente oferece controle em nível de intermediário sobre a capacidade existente do cluster para atender às suas necessidades de carga de trabalho e evitar a migração para outro cluster.

Use o AWS console, a interface de linha de comando (CLI), o SDK ou AWS CloudFormation para reduzir o número de agentes do seu cluster provisionado. O MSK escolhe os agentes que não têm nenhuma partição neles (exceto os tópicos básicos) e impede que os aplicativos produzam dados para esses corretores, ao mesmo tempo que os remove com segurança do cluster.

Você deve remover um agente por zona de disponibilidade, se quiser reduzir o armazenamento e a computação de um cluster. Por exemplo, você pode remover dois agentes de um cluster de duas zonas de disponibilidade ou três corretores de um cluster de três zonas de disponibilidade em uma única operação de remoção de agentes.

Para obter informações sobre como rebalancear partições depois de remover os brokers de um cluster, consulte. Reatribuir partições

Você pode remover agentes de todos os clusters provisionados por MSK baseados em M5 e M7g, independentemente do tamanho da instância.

A remoção do broker é suportada nas versões 2.8.1 e superiores do Kafka, inclusive nos clusters do modo Kraft.

Prepare-se para remover os corretores removendo todas as partições

Antes de iniciar o processo de remoção do corretor, primeiro mova todas as partições, exceto aquelas de tópicos __amazon_msk_canary e __amazon_msk_canary_state das corretoras que você planeja remover. Esses são tópicos internos que o Amazon MSK cria para métricas de saúde e diagnóstico do cluster.

Você pode usar as APIs de administração do Kafka ou o Cruise Control para mover partições para outros corretores que você pretende manter no cluster. Consulte Reatribuir partições.

Exemplo de processo para remover partições

Esta seção é um exemplo de como remover partições do broker que você pretende remover. Suponha que você tenha um cluster com 6 corretores, 2 corretores em cada AZ, e ele tenha quatro tópicos:

  • __amazon_msk_canary

  • __consumer_offsets

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

  • msk-brk-rmv

  1. Crie uma máquina cliente conforme descrito em Criar uma máquina cliente.

  2. Depois de configurar a máquina cliente, execute o comando a seguir para listar todos os tópicos disponíveis em seu cluster.

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

    Neste exemplo, vemos quatro nomes de tópicos__amazon_msk_canary, __consumer_offsets__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2,, msk-brk-rmv e.

  3. Crie um arquivo json chamado topics.json na máquina cliente e adicione todos os nomes dos tópicos do usuário, como no exemplo de código a seguir. Você não precisa incluir o nome do __amazon_msk_canary tópico, pois esse é um tópico gerenciado pelo serviço que será movido automaticamente quando necessário.

    { "topics": [ {"topic": "msk-brk-rmv"}, {"topic": "__consumer_offsets"}, {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"} ], "version":1 }
  4. Execute o comando a seguir para gerar uma proposta para mover partições para apenas 3 corretores dos 6 corretores no cluster.

    ./bin/kafka-reassign-partitions.sh --bootstrap-server “CLUSTER_BOOTSTRAP_STRING” --topics-to-move-json-file topics.json --broker-list 1,2,3 --generate
  5. Crie um arquivo chamado reassignment-file.json e copie o comando que proposed partition reassignment configuration você obteve acima.

  6. Execute o comando a seguir para mover as partições que você especificou noreassignment-file.json.

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

    A saída será semelhante à seguinte:

    Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
  7. Execute o comando a seguir para verificar se todas as partições foram movidas.

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

    A saída será semelhante à seguinte. Monitore o status até que todas as partições nos tópicos solicitados tenham sido reatribuídas com sucesso:

    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. Quando o status indicar que a reatribuição de partição para cada partição foi concluída, monitore as UserPartitionExists métricas por 5 minutos para garantir que elas sejam exibidas 0 para os corretores dos quais você moveu as partições. Depois de confirmar isso, você pode continuar removendo o agente do cluster.

Remover um corretor com o AWS Management Console

Para remover corretores com o AWS Management Console
  1. Abra o console do Amazon MSK em https://console.aws.amazon.com/msk/.

  2. Escolha o cluster MSK que contém os agentes que você deseja remover.

  3. Na página de detalhes do cluster, escolha o botão Ações e selecione a opção Editar número de corretores.

  4. Insira o número de corretores que você deseja que o cluster tenha por zona de disponibilidade. O console resume o número de corretores nas zonas de disponibilidade que serão removidos. Certifique-se de que é isso que você quer.

  5. Escolha Salvar alterações.

Para evitar a remoção acidental do corretor, o console solicita que você confirme que deseja excluir os corretores.

Remova um corretor com a AWS CLI

Execute o comando a seguir, ClusterArn substituindo-o pelo Amazon Resource Name (ARN) que você obteve ao criar seu cluster. Se você não tiver o ARN do cluster, poderá encontrá-lo listando todos os clusters. Para obter mais informações, consulte Listando clusters do Amazon MSK. Current-Cluster-VersionSubstitua pela versão atual do cluster.

Importante

As versões de cluster não são inteiros simples. Para encontrar a versão atual do cluster, use a DescribeClusteroperação ou o comando AWS CLI describe-cluster. Uma versão de exemplo é KTVPDKIKX0DER.

O parâmetro Target-Number-of-Brokers representa o número total de nós de agente que você deseja que o cluster tenha quando essa operação for concluída com êxito. O valor especificado para o número-alvo de corretores deve ser um número inteiro menor que o número atual de corretores no cluster. Também deve ser um múltiplo do número de zonas de disponibilidade.

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

A saída dessa operação update-broker-count é semelhante ao seguinte 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 } } }

Nesta saída, OperationType é DECREASE_BROKER_COUNT. Se OperationState tiver o valor UPDATE_IN_PROGRESS, aguarde um pouco e execute o comando describe-cluster-operation novamente.

Remover um corretor com a AWS API

Para remover corretores em um cluster usando a API, consulte UpdateBrokerCount in the Amazon Managed Streaming for Apache Kafka API Reference.