Passer au contenu

Comment vérifier, mettre à l’échelle, drainer ou supprimer mes composants master dans Amazon EKS ?

Lecture de 5 minute(s)
0

J'ai utilisé eksctl ou la console Amazon Elastic Kubernetes Service (Amazon EKS) pour vérifier, mettre à l’échelle, drainer ou supprimer mes composants master.

Résolution

Vérifier vos composants master

Pour répertorier les composants master que vous avez enregistrés dans le plan de contrôle Amazon EKS, exécutez la commande suivante :

kubectl get nodes -o wide

Dans la sortie, vous pouvez consulter le nom, la version de Kubernetes, le système d’exploitation et l’adresse IP des composants master.

Pour obtenir des informations supplémentaires sur un composant master spécifique, exécutez la commande suivante :

kubectl describe node/node_name

Remarque : Remplacez node_name par l’Amazon Resource Name (ARN) de votre composant master. Par exemple, ip-AA-BB-CC-DD.us-east-1.compute.internal.

La sortie présente des informations sur le composant master, notamment les étiquettes, les rejets, les informations système et le statut.

Mettre à l’échelle vos composants master

Remarque : Si vos groupes de nœuds apparaissent dans la console Amazon EKS, utilisez un groupe de nœuds gérés pour mettre à l’échelle vos composants master. Sinon, utilisez un groupe de nœuds non gérés.

Utilisez l’une des méthodes suivantes pour mettre à l’échelle vos composants master.

Mettre à l’échelle les composants master avec eksctl

Pour utiliser eksctl afin de mettre à l’échelle vos composants master gérés ou non gérés, exécutez la commande suivante :

eksctl scale nodegroup --cluster=clusterName --nodes=desiredCount --name=nodegroupName

Remarque : Remplacez clusterName par le nom de votre cluster, desiredCount par le nombre de nœuds vers lesquels effectuer la mise à l’échelle, et nodegroupName par le nom du groupe de nœuds.

Mettre à l’échelle les composants master sans eksctl

Pour mettre à l’échelle vos composants master gérés sans eksctl, modifiez la configuration du groupe de nœuds.

Mettre à l’échelle les composants master avec CloudFormation

Pour utiliser AWS CloudFormation afin de mettre à l’échelle vos composants master non gérés, utilisez un modèle CloudFormation pour lancer vos composants master pour Windows ou Linux. Puis, modifiez les paramètres NodeAutoScalingGroupDesiredCapacity, NodeAutoScalingGroupMinSize ou NodeAutoScalingGroupMaxSize dans votre pile CloudFormation.

Drainer vos composants master

Important : L’action de drainage isole le composant master de sorte que Kubernetes ne planifie plus de nouveaux pods sur le nœud. Kubernetes supprime les pods qui s'exécutent sur le nœud cible et les empêche de les drainer.

Vous pouvez drainer un groupe de nœuds complet ou un seul composant master.

Drainer l’intégralité du groupe de nœuds

Si vous avez utilisé eksctl pour lancer vos composants master, exécutez la commande suivante :

eksctl drain nodegroup --cluster=clusterName --name=nodegroupName

Remarque : Remplacez clusterName par le nom de votre cluster et nodegroupName par le nom de votre groupe de nœuds.

Pour dissocier un groupe de nœuds drainé, exécutez la commande suivante :

eksctl drain nodegroup --cluster=clusterName --name=nodegroupName --undo

Remarque : Remplacez clusterName par le nom de votre cluster et nodegroupName par le nom de votre groupe de nœuds.

Si vous n'avez pas utilisé eksctl pour lancer vos compsoants master, exécutez le script suivant pour drainer tous les nœuds d'une version spécifique de 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

Remarque : Remplacez 1.18.8-eks-7c9bda par votre version de Kubernetes.

Pour dissocier les nœuds drainés, exécutez le script suivant :

#!/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

Remarque : Remplacez 1.18.8-eks-7c9bda par votre version de Kubernetes.

Pour obtenir le numéro de version de votre composant master, exécutez la commande suivante :

kubectl get nodesNAME

Remarque : Remplacez nodesNAME par le nom de votre nœud.

Exemple de sortie :

$ 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

Le numéro de version apparaît dans la colonne VERSION.

Drainer un seul composant master

Si vous n’avez pas utilisé eksctl pour lancer vos composants master ou pour drainer un nœud spécifique uniquement, isolez correctement votre composant master : Exécutez la commande suivante :

kubectl drain node_name --ignore-daemonsets

Remarque : Remplacez node_name par le nom de votre nœud.

Pour annuler l’isolation, exécutez la commande suivante :

kubectl uncordon node_name

Remarque : Remplacez node_name par le nom de votre nœud.

Vous pouvez également migrer vos applications existantes vers un nouveau groupe de composants master.

Supprimer vos composants master

Important : Vous ne pouvez pas annuler une action de suppression.

Si vous utilisez eksctl, exécutez la commande suivante :

eksctl delete nodegroup --cluster=clusterName --name=nodegroupName

Remarque : Remplacez clusterName par le nom de votre cluster et nodegroupName par le nom de votre groupe de nœuds.

Si vous disposez d'un groupe de nœuds gérés, consultez la section Supprimer un groupe de nœuds gérés de votre cluster.

Si vous avez un groupe de nœuds non gérés et que vous avez utilisé un modèle CloudFormation pour lancer vos composants master, supprimez la pile du groupe de nœuds.

Si vous avez un groupe de nœuds non gérés, mais que vous n'avez pas utilisé de modèle CloudFormation, supprimez le groupe Amazon Elastic Compute Cloud (Amazon EC2) Auto Scaling. Si vous n’avez pas utilisé de groupe Amazon EC2 Auto Scaling, résiliez l’instance.

AWS OFFICIELA mis à jour il y a un an