Come posso controllare, ridimensionare, eliminare o svuotare i miei nodi di lavoro in Amazon EKS?
Ho lanciato i miei nodi di lavoro Amazon Elastic Kubernetes Service (Amazon EKS) utilizzando eksctl o la Console di gestione AWS. Ora voglio controllare, ridimensionare, drenare o eliminare i miei nodi di lavoro.
Breve descrizione
Completa i passaggi nella sezione appropriata in base alle tue esigenze:
- Controlla i tuoi nodi di lavoro
- Scala i tuoi nodi di lavoro
- Svuota i tuoi nodi di lavoro
- Elimina i tuoi nodi di lavoro
Risoluzione
Controlla i tuoi nodi di lavoro
Per elencare i nodi di lavoro 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 e l'indirizzo IP dei nodi di lavoro.
Per ottenere informazioni aggiuntive su un singolo nodo di lavoro, 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 di lavoro, 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.
(Opzione 1) Per scalare i nodi di lavoro 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.
-oppure-
(Opzione 2) Per scalare i nodi di lavoro gestiti senza eksctl, completa i passaggi nella sezione «Per modificare la configurazione di un gruppo di nodi» di Aggiornamento di un gruppo di nodi gestito.
-oppure-
(Opzione 3) Per scalare i tuoi nodi di lavoro non gestiti utilizzando AWS CloudFormation, completa i seguenti passaggi:
-
Usa un modello CloudFormation per avviare i tuoi nodi di lavoro per Windows o Linux.
-
Modifica i parametri NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize o NodeAutoScalingGroupMaxSize nel tuo stack CloudFormation.
Svuota i tuoi nodi di lavoro
Importante: L'azione di drenaggio isola il nodo di lavoro e indica a Kubernetes di interrompere la pianificazione di nuovi pod sul nodo. I pod in esecuzione sul nodo bersaglio vengono rimossi dai nodi di drenaggio, il che significa che i pod verranno fermati. Considerate l'effetto che ciò può avere sul vostro ambiente di produzione.
È possibile svuotare un intero gruppo di nodi o un singolo nodo di lavoro. Scegliete l'opzione appropriata.
(Opzione 1) Svuota l'intero gruppo di nodi:
Se stai usando eksctl per avviare i tuoi nodi di lavoro, esegui il seguente comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Nota: Sostituisci clusterName e nodegroupName con i tuoi valori.
Per decordare 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 di lavoro, 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 decordare 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 di lavoro, esegui il seguente comando:
$ kubectl get nodes NAME 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
Nota: Il numero della versione viene visualizzato nella colonna VERSIONE.
(Opzione 2) Svuotare un singolo nodo di lavoro:
Se non stai usando eksctl per avviare i tuoi nodi di lavoro o desideri svuotare solo un nodo specifico, isola con garbo il tuo nodo di lavoro:
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. Considerate l'impatto che ciò può avere sul vostro ambiente di produzione.
Se stai usando 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 avviato i nodi di lavoro con un modello CloudFormation, elimina lo stack CloudFormation. È 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 di lavoro, elimina il gruppo Auto Scaling per i tuoi nodi di lavoro. Oppure, interrompi direttamente l'istanza se non hai utilizzato un gruppo Auto Scaling.
Contenuto pertinente
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata un anno fa
- AWS UFFICIALEAggiornata 2 anni fa
- AWS UFFICIALEAggiornata un anno fa