Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Come posso controllare, scalare, svuotare o eliminare i miei nodi worker in Amazon EKS?
Ho usato eksctl o la console Amazon Elastic Kubernetes Service (Amazon EKS) per controllare, scalare, svuotare o eliminare i miei nodi worker.
Risoluzione
Controlla i nodi worker
Per elencare i nodi worker registrati nel piano di controllo (control-plane) di Amazon EKS, esegui questo comando:
kubectl get nodes -o wide
L'output restituisce il nome, la versione di Kubernetes, il sistema operativo e l'indirizzo IP dei nodi worker.
Per ottenere informazioni aggiuntive su un nodo worker specifico, esegui questo comando:
kubectl describe node/node_name
Nota: sostituisci node_name con il nome della risorsa Amazon (ARN) del tuo nodo worker. Ad esempio, ip-AA-BB-CC-DD.us-east-1.compute.internal.
L'output mostra informazioni sul nodo worker come etichette, taint, informazioni di sistema e stato.
Scala i nodi worker
Nota: se i gruppi di nodi vengono visualizzati nella console Amazon EKS, utilizza un gruppo di nodi gestito. Altrimenti utilizza un gruppo di nodi non gestito.
Utilizza uno dei seguenti metodi per scalare i nodi worker.
Scala i nodi worker con eksctl
Per scalare nodi worker gestiti o non gestiti con eksctl, esegui questo comando:
eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName
Nota: sostituisci clusterName con il nome del tuo cluster, desiredCount con il numero di nodi a cui scalare e nodegroupName con il nome del gruppo di nodi.
Scala i nodi worker senza eksctl
Per scalare nodi worker gestiti senza eksctl, modifica la configurazione del gruppo di nodi.
Scala i nodi worker con CloudFormation
Per scalare nodi worker non gestiti con AWS CloudFormation , utilizza un modello CloudFormation per avviare i nodi diworker per Windows o Linux. Modifica i parametri NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize o NodeAutoScalingGroupMaxSize nello stack CloudFormation.
Svuota i nodi worker
Importante: l'azione di svuotamento isola il nodo worker e Kubernetes non pianifica più nuovi Pod sul nodo. Kubernetes rimuove e impedisce ai Pod in esecuzione sul nodo di destinazione di svuotare i nodi.
Puoi svuotare un intero gruppo di nodi o un singolo nodo worker.
Svuota l'intero gruppo di nodi
Se hai utilizzato eksctl per avviare i nodi worker, esegui questo comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName
Nota: sostituisci clusterName con il nome del tuo cluster e nodegroupName con il nome del tuo gruppo di nodi.
Per rendere nuovamente disponibile il gruppo di nodi, esegui questo comando:
eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo
Nota: sostituisci clusterName con il nome del tuo cluster e nodegroupName con il nome del tuo gruppo di nodi.
Se non hai usato eksctl per avviare i nodi worker, esegui questo script per svuotare tutti i nodi di una specifica versione di Kubernetes:
#!/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
Nota: sostituisci 1.18.8-eks-7c9bda con la tua versione di Kubernetes.
Per rendere nuovamente disponibili i nodi svuotati, esegui questo script:
#!/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: sostituisci 1.18.8-eks-7c9bda con la tua versione di Kubernetes.
Per ottenere il numero di versione del nodo worker, esegui questo comando:
kubectl get nodesNAME
Nota: sostituisci nodesNAME con il nome del tuo nodo.
Esempio di output:
$ kubectl get nodesNAME STATUS ROLES AGE VERSION ip-ABC-ACB-DE-ABC.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda ip-ABC-ABC-DE-ABC.ec2.internal Ready <none> 6d4h v1.18.8-eks-7c9bda
Il numero di versione viene visualizzato nella colonna VERSIONE.
Svuota un singolo nodo worker
Se non hai utilizzato eksctl per avviare i nodi worker o desideri svuotare solo un nodo specifico, isola accuratamente il nodo worker. Esegui questo comando:
kubectl drain node_name --ignore-daemonsets
Nota: sostituisci node_name con il nome del tuo nodo.
Per annullare l'isolamento, esegui questo comando:
kubectl uncordon node_name
Nota: sostituisci node_name con il nome del tuo nodo.
Puoi inoltre eseguire la migrazione delle applicazioni esistenti in un nuovo gruppo di nodi worker.
Elimina i nodi worker
Importante: non puoi annullare un'azione di eliminazione.
Se usi eksctl, esegui questo comando:
eksctl delete nodegroup --cluster=clusterName --name=nodegroupName
Nota: sostituisci clusterName con il nome del tuo cluster e nodegroupName con il nome del tuo gruppo di nodi.
Se disponi di un gruppo di nodi gestito, consulta Eliminare un gruppo di nodi gestito dal cluster.
Se hai un gruppo di nodi non gestito e hai utilizzato un modello CloudFormation per avviare i nodi worker, elimina lo stack del gruppo di nodi.
Se hai un gruppo di nodi non gestito, ma non hai utilizzato un modello CloudFormation, elimina il gruppo Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling. Se non hai utilizzato un gruppo Amazon EC2 Auto Scaling, termina l'istanza.
- Argomenti
- Containers
- Lingua
- Italiano
