Introduction
Dans ce laboratoire (lab), vous apprendrez à utiliser kubectl pour examiner les nœuds de votre cluster Kubernetes. Vous commencerez par les informations de base sur les nœuds et aborderez ensuite des sujets plus avancés tels que les taints et les tolerations. Ce laboratoire suppose que vous avez déjà configuré un cluster Kubernetes et que vous avez installé kubectl.
Démarrer le cluster Minikube
Avant de créer des ressources, vous avez besoin d'un cluster Kubernetes en cours d'exécution. Minikube est un environnement Kubernetes léger qui s'exécute sur votre machine locale.
Accédez à votre répertoire de travail :
Ouvrez le terminal et accédez au dossier de projet par défaut :
cd /home/labex/projectDémarrez Minikube :
Démarrez Minikube pour initialiser un cluster Kubernetes :
minikube start- Cette commande configure un cluster Kubernetes mono - nœud sur votre machine locale.
- Minikube peut prendre quelques minutes à démarrer en fonction des performances de votre système.
Vérifiez que Minikube est en cours d'exécution :
Vérifiez l'état du cluster Minikube :
minikube status- Recherchez des composants tels que
kubeletetapiserverlistés commeRunning(en cours d'exécution). - Si le cluster n'est pas en cours d'exécution, relancez la commande
minikube start.
- Recherchez des composants tels que
Si vous rencontrez des problèmes lors du démarrage de Minikube, utilisez minikube delete pour réinitialiser l'environnement si nécessaire.
Informations de base sur les nœuds
La première chose que vous allez faire est d'obtenir des informations de base sur les nœuds de votre cluster.
Pour afficher la liste des nœuds de votre cluster, exécutez la commande suivante :
kubectl get nodesCela affichera la liste de tous les nœuds de votre cluster ainsi que leur statut.
Pour obtenir des informations plus détaillées sur un nœud spécifique, exécutez la commande suivante :
kubectl describe node minikubeRemplacez
minikubepar le nom du nœud que vous souhaitez examiner. Cela vous donnera des informations détaillées sur le statut, la capacité et l'utilisation du nœud.
Étiquettes (Labels) et Annotations
Les étiquettes (labels) et les annotations peuvent être utilisées pour ajouter des métadonnées aux nœuds de votre cluster. Ces métadonnées peuvent être utilisées pour sélectionner des nœuds pour des tâches spécifiques ou pour filtrer les nœuds en fonction de certains critères.
Pour afficher les étiquettes et les annotations d'un nœud spécifique, exécutez la commande suivante :
kubectl get node minikube --show-labels=trueCela affichera les étiquettes et les annotations du nœud spécifié.
Pour ajouter une étiquette à un nœud, exécutez la commande suivante :
kubectl label node minikube org=labexPour ajouter une annotation à un nœud, exécutez la commande suivante :
kubectl annotate node minikube environment=productionUtilisez la commande suivante pour vérifier les étiquettes sur le nœud :
kubectl get nodes --show-labelsCela affichera une liste de tous les nœuds du cluster ainsi que leurs étiquettes. Les nœuds peuvent être étiquetés pour faciliter l'identification de leur fonction ou de leurs caractéristiques.
Taints et Tolerances
Les taints et les tolerations peuvent être utilisés pour contrôler quels pods peuvent être planifiés sur quels nœuds de votre cluster. Un taint est une étiquette spéciale qui marque un nœud comme inapproprié pour certains types de pods, et une toleration est un paramètre qui permet à un pod d'être planifié sur un nœud avec un taint correspondant.
Pour afficher les taints d'un nœud spécifique, exécutez la commande suivante :
kubectl describe node minikube | grep TaintsCela affichera les taints du nœud spécifié.
Pour ajouter un taint à un nœud, exécutez la commande suivante :
kubectl taint node minikube app=backend:NoSchedulePour créer une toleration pour un pod, exécutez la commande suivante :
cat << EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: my-pod spec: containers: - name: my-container image: nginx tolerations: - key: app operator: Exists effect: NoSchedule EOFCe pod utilise
appcomme nom du taint etNoSchedulecomme effet que le taint doit avoir.
Voir la capacité des nœuds et l'utilisation des ressources
Pour afficher les ressources disponibles sur un nœud, utilisez la commande suivante :
kubectl describe node minikube | grep -A 8 "Allocated resources"
Remplacez minikube par le nom du nœud que vous souhaitez examiner.
Cela fournira des informations détaillées sur le nœud, y compris sa capacité et son utilisation actuelle des ressources.
Voir les événements des nœuds
Dans Kubernetes, vous pouvez utiliser la commande suivante pour filtrer tous les événements liés à un nœud spécifique :
kubectl get events --field-selector involvedObject.kind=Node,involvedObject.name=minikube
Remplacez minikube par le nom du nœud que vous souhaitez interroger. Cette commande répertoriera tous les événements liés à ce nœud, tels que les redémarrages, les mises à niveau, etc.
Mettre en quarantaine (Cordon) et sortir de quarantaine (Uncordon) un nœud
Dans certains cas, vous devrez peut-être retirer un nœud de rotation pour effectuer des opérations de maintenance ou pour d'autres raisons. Kubernetes propose un moyen de marquer un nœud comme non planifiable afin qu'aucun nouveau pod ne soit planifié sur celui-ci. Cela s'appelle le "cordon".
Pour mettre un nœud en veille (cordonner), utilisez la commande suivante :
kubectl cordon minikube
Remplacez minikube par le nom du nœud que vous souhaitez cordonner.
Ensuite, utilisez la commande suivante pour vérifier l'état du nœud :
kubectl get node
Pour sortir un nœud de veille (décordonner) et autoriser la planification de nouveaux pods sur celui-ci, utilisez la commande suivante :
kubectl uncordon minikube
Remplacez minikube par le nom du nœud que vous souhaitez décordonner.
Notez que le cordonnage d'un nœud ne déplace pas automatiquement les pods existants du nœud. Vous devriez supprimer ou déplacer manuellement les pods avant de cordonner le nœud pour éviter tout dysfonctionnement.
Félicitations, vous avez appris à cordonner et à décordonner un nœud dans Kubernetes.
Résumé
Dans ce laboratoire, vous avez appris à examiner les nœuds dans un cluster Kubernetes en utilisant kubectl. Vous avez appris à lister les nœuds, à vérifier leur statut, à afficher leurs étiquettes (labels) et à inspecter leur capacité et leur utilisation des ressources. Vous avez également appris à vider (drain) et à décordonner les nœuds pour les opérations de maintenance et de mise à niveau.


