View a markdown version of this page

Rimuovere un broker da un cluster Amazon MSK - Amazon Managed Streaming per Apache Kafka

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Rimuovere un broker da un cluster Amazon MSK

Usa questa operazione Amazon MSK quando desideri rimuovere i broker dai cluster con provisioning di Amazon Managed Streaming for Apache Kafka (MSK). Puoi ridurre la capacità di storage e di calcolo del cluster rimuovendo i set di broker, senza alcun impatto sulla disponibilità, rischio di durabilità dei dati o interruzioni delle applicazioni di streaming di dati.

Puoi aggiungere altri broker al tuo cluster per gestire l'aumento del traffico e rimuovere i broker quando il traffico diminuisce. Grazie alla funzionalità di aggiunta e rimozione dei broker, puoi utilizzare al meglio la capacità del cluster e ottimizzare i costi dell'infrastruttura MSK. La rimozione del broker offre il controllo a livello di broker sulla capacità del cluster esistente per soddisfare le esigenze dei carichi di lavoro ed evitare la migrazione verso un altro cluster.

Usa la AWS console, l'interfaccia a riga di comando (CLI), l'SDK o CloudFormation per ridurre il numero di broker del cluster su cui è stato eseguito il provisioning. MSK seleziona i broker che non dispongono di partizioni (ad eccezione di Canary Topic) e impedisce alle applicazioni di produrre dati a tali broker, rimuovendoli al contempo in modo sicuro dal cluster.

È necessario rimuovere un broker per zona di disponibilità, se si desidera ridurre lo storage e l'elaborazione di un cluster. Ad esempio, puoi rimuovere due broker da un cluster di due zone di disponibilità o tre broker da un cluster di tre zone di disponibilità in un'unica operazione di rimozione del broker.

Per informazioni su come ribilanciare le partizioni dopo aver rimosso i broker da un cluster, consulta. Riassegnazione delle partizioni

È possibile rimuovere i broker da tutti i cluster con provisioning MSK basati su M5 e M7g, indipendentemente dalle dimensioni dell'istanza.

La rimozione dei broker è supportata nelle versioni di Kafka 2.8.1 e successive, inclusi i cluster in modalità KraFT.

Preparati a rimuovere i broker rimuovendo tutte le partizioni

Prima di iniziare il processo di rimozione del broker, sposta prima tutte le partizioni, tranne quelle relative agli argomenti __amazon_msk_canary e ai broker che __amazon_msk_canary_state intendi rimuovere. Si tratta di argomenti interni creati da Amazon MSK per le metriche diagnostiche e di salute dei cluster.

Puoi utilizzare le API di amministrazione di Kafka o Cruise Control per spostare le partizioni su altri broker che intendi mantenere nel cluster. Vedi Riassegnare le partizioni.

Esempio di processo per rimuovere le partizioni

Questa sezione è un esempio di come rimuovere le partizioni dal broker che intendi rimuovere. Supponiamo di avere un cluster con 6 broker, 2 broker in ogni AZ, e che abbia quattro argomenti:

  • __amazon_msk_canary

  • __consumer_offsets

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

  • msk-brk-rmv

  1. Crea un computer client come descritto in Creare un computer client.

  2. Dopo aver configurato il computer client, esegui il comando seguente per elencare tutti gli argomenti disponibili nel cluster.

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

    In questo esempio, vediamo quattro nomi di argomenti__amazon_msk_canary, __consumer_offsets__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2, emsk-brk-rmv.

  3. Crea un file json chiamato topics.json sul computer client e aggiungi tutti i nomi degli argomenti utente come nel seguente esempio di codice. Non è necessario includere il nome dell'__amazon_msk_canaryargomento in quanto si tratta di un argomento gestito dal servizio che verrà spostato automaticamente quando necessario.

    { "topics": [ {"topic": "msk-brk-rmv"}, {"topic": "__consumer_offsets"}, {"topic": "__amazon_msk_connect_offsets_my-mskc-connector_12345678-09e7-c657f7e4ff32-2"} ], "version":1 }
  4. Esegui il comando seguente per generare una proposta per spostare le partizioni solo su 3 broker su 6 del 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. Crea un file chiamato reassignment-file.json e copia il comando proposed partition reassignment configuration che hai ottenuto da sopra.

  6. Esegui il seguente comando per spostare le partizioni specificate nelreassignment-file.json.

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

    L'esito si presenta in maniera analoga all'immagine riportata di seguito.

    Successfully started partition reassignments for morpheus-test-topic-1-0,test-topic-1-0
  7. Esegui il comando seguente per verificare che tutte le partizioni siano state spostate.

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

    L'output è simile al seguente. Monitora lo stato finché tutte le partizioni negli argomenti richiesti non siano state riassegnate correttamente:

    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 lo stato indica che la riassegnazione delle partizioni per ciascuna partizione è stata completata, monitora le UserPartitionExists metriche per 5 minuti per assicurarti che vengano 0 visualizzate per i broker da cui hai spostato le partizioni. Dopo aver confermato ciò, puoi procedere alla rimozione del broker dal cluster.

Rimuovi un broker con AWS Console di gestione

Per rimuovere i broker con AWS Console di gestione
  1. Apri la console Amazon MSK all'indirizzo https://console.aws.amazon.com/msk/.

  2. Scegli il cluster MSK che contiene i broker che desideri rimuovere.

  3. Nella pagina dei dettagli del cluster, scegli il pulsante Azioni e seleziona l'opzione Modifica numero di broker.

  4. Inserisci il numero di broker che desideri che il cluster abbia per zona di disponibilità. La console riepiloga il numero di broker nelle zone di disponibilità che verranno rimossi. Assicurati che sia quello che desideri.

  5. Scegli Save changes (Salva modifiche).

Per evitare la rimozione accidentale dei broker, la console ti chiede di confermare che desideri eliminare i broker.

Rimuovi un broker con AWS CLI

Esegui il comando seguente, sostituendolo ClusterArn con l'Amazon Resource Name (ARN) ottenuto durante la creazione del cluster. Se non disponi dell'ARN per il cluster, puoi trovarlo elencando tutti i cluster. Per ulteriori informazioni, consulta Elenco dei cluster Amazon MSK. Sostituisci Current-Cluster-Version con la versione corrente del cluster.

Importante

Le versioni del cluster non sono interi semplici. Per trovare la versione corrente del cluster, usa l'DescribeClusteroperazione o il comando https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/describe-cluster.html AWS CLI describe-cluster. Una versione di esempio è KTVPDKIKX0DER.

Il Target-Number-of-Brokers parametro rappresenta il numero totale di nodi broker che si desidera che il cluster abbia quando l'operazione viene completata correttamente. Il valore specificato Target-Number-of-Brokers deve essere un numero intero inferiore al numero corrente di broker nel cluster. Deve anche essere un multiplo del numero di zone di disponibilità.

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

L'output di questa operazione update-broker-count è simile al seguente 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 } } }

In questo output, OperationType è DECREASE_BROKER_COUNT. Se il valore di OperationState è UPDATE_IN_PROGRESS, attendi qualche minuto, quindi esegui nuovamente il comando describe-cluster-operation.

Rimuovi un broker con AWS "Hello, World!"

Per rimuovere i broker in un cluster utilizzando l'API, consulta UpdateBrokerCount l'API Reference di Amazon Managed Streaming for Apache Kafka.