Come faccio a controllare, scalare, eliminare o svuotare i miei nodi worker in Amazon EKS?
Ho lanciato i miei nodi worker Amazon Elastic Kubernetes Service (Amazon EKS) utilizzando eksctl o la Console di gestione AWS. Ora voglio controllare, ridimensionare, drenare o eliminare i miei nodi worker.
Risoluzione
Controlla i tuoi nodi worker
Per elencare i nodi worker registrati nel piano di controllo di Amazon EKS, esegui il seguente comando:
kubectl get nodes -o wide
L'output restituisce il nome, la versione di Kubernetes, il sistema operativo (SO) e l'indirizzo IP dei nodi worker.
Per ottenere informazioni aggiuntive su un singolo nodo worker, esegui il comando seguente:
kubectl describe node/node_name
Nota: Sostituisci node_name con il tuo valore, ad esempio: IP-XX-XX-XX-XX.us-east-1.compute.internal.
L'output mostra ulteriori informazioni sul nodo worker, tra cui etichette, macchie, informazioni di sistema e stato.
Scala i tuoi nodi di lavoro
Nota: Se i tuoi gruppi di nodi vengono visualizzati nella console Amazon EKS, utilizza un gruppo di nodi gestito. Altrimenti, usa un gruppo di nodi non gestito.
Utilizza uno dei seguenti metodi per scalare i nodi worker.
Scala i nodi worker con eksctl
Per scalare i nodi worker gestiti o non gestiti utilizzando eksctl, esegui il seguente comando:
eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName
Nota: Sostituisci clusterName, desiredCount e nodegroupName con i tuoi valori.
Scala i nodi worker senza eksctl
Per scalare i nodi worker gestiti senza eksctl, modifica la configurazione del gruppo di nodi.
Scala i nodi worker con CloudFormation
Per scalare i tuoi nodi worker non gestiti utilizzando AWS CloudFormation, completa i seguenti passaggi:
- Usa un modello CloudFormation per avviare i tuoi nodi worker per Windows o Linux.
- Modifica i parametri NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize o NodeAutoScalingGroupMaxSize nel tuo stack CloudFormation.
Svuota i tuoi nodi worker
Importante: L'azione di drenaggio isola il nodo worker e Kubernetes non pianifica più nuovi pod sul nodo. I pod che vengono eseguiti sul nodo di destinazione vengono rimossi dai nodi di drenaggio e vengono interrotti.
È possibile svuotare un intero gruppo di nodi o un singolo nodo worker.
Svuota l'intero gruppo di nodi
Se stai usando eksctl per avviare i tuoi nodi worker, esegui il seguente comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Nota: Sostituisci clusterName e nodegroupName con i tuoi valori.
Per drenare il gruppo di nodi, esegui il seguente comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo
Nota: Sostituisci clusterName e nodegroupName con i tuoi valori.
Se non stai usando eksctl per avviare i tuoi nodi worker, identifica e svuota tutti i nodi di una particolare versione di Kubernetes. Ad esempio:
#!/bin/bash K8S_VERSION=1.18.8-eks-7c9bda nodes=$(kubectl get nodes -o jsonpath="{.items[?(@.status.nodeInfo.kubeletVersion==\"v$K8S_VERSION\")].metadata.name}") for node in ${nodes[@]} do echo "Draining $node" kubectl drain $node --ignore-daemonsets --delete-local-data done
Per identificare e drenare tutti i nodi di una particolare versione di Kubernetes, usa il codice seguente:
#!/bin/bash K8S_VERSION=1.18.8-eks-7c9bda nodes=$(kubectl get nodes -o jsonpath="{.items[?(@.status.nodeInfo.kubeletVersion==\"v$K8S_VERSION\")].metadata.name}") for node in ${nodes[@]} do echo "Uncordon $node" kubectl uncordon $node done
Nota: Per ottenere la versione del tuo nodo worker, esegui il seguente comando. Il numero della versione viene visualizzato nella colonna VERSIONE:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION ip-XXX-XXX-XX-XXX.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda ip-XXX-XXX-XX-XXX.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda
Svuotare un singolo nodo worker
Se non stai usando eksctl per avviare i tuoi nodi worker o desideri svuotare solo un nodo specifico, isola con garbo il tuo nodo worker:
kubectl drain node_name --ignore-daemonsets
Nota: Sostituisci node_name con il tuo valore.
Per annullare l'isolamento, esegui il seguente comando:
kubectl uncordon node_name
Nota: Sostituisci node_name con il tuo valore.
Per migrare le applicazioni esistenti a un nuovo gruppo di nodi di lavoro, vedere Migrazione a un nuovo gruppo di nodi.
Elimina i tuoi nodi di lavoro
Importante: L'azione di eliminazione non è recuperabile.
Se usi eksctl, esegui il seguente comando:
eksctl delete nodegroup --cluster=clusterName --name=nodegroupName
Se disponi di un gruppo di nodi gestito, completa i passaggi in Eliminazione di un gruppo di nodi gestito.
Se disponi di un gruppo di nodi non gestito e hai utilizzato un modello CloudFormation per avviare i nodi worker, elimina lo stack. È necessario eliminare lo stack creato per il gruppo di nodi per Windows o Linux.
Se disponi di un gruppo di nodi non gestito e non hai utilizzato un modello CloudFormation per avviare i nodi worker, elimina il gruppo Auto Scaling. Oppure, interrompi direttamente l'istanza se non hai utilizzato un gruppo Auto Scaling.
Contenuto pertinente
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa