Lab 2.2 - Analyse des Worker Nodes
Objectifs
À la fin de ce lab, vous serez capable de:
- Inspecter les Worker Nodes
- Comprendre le rôle de kubelet
- Analyser kube-proxy
- Examiner le Container Runtime
Prérequis
- Cluster Kubernetes fonctionnel
- kubectl installé et configuré
- Accès au cluster
Exercice 1: Inspecter les Nodes
Étape 1: Lister les Nodes
# Voir tous les nodes
kubectl get nodes
# Voir les détails d'un node
kubectl describe node <node-name>
# Voir les nodes avec plus d'informations
kubectl get nodes -o wide
Question: Combien de Worker Nodes avez-vous? Quels sont leurs rôles?
Étape 2: Informations d'un Node
# Voir les labels d'un node
kubectl get node <node-name> --show-labels
# Voir les annotations
kubectl get node <node-name> -o jsonpath='{.metadata.annotations}'
Exercice 2: Analyser kubelet
Étape 1: Vérifier kubelet
# Voir les Pods système liés à kubelet
kubectl get pods -n kube-system | grep kubelet
# Voir les événements d'un node
kubectl get events --field-selector involvedObject.name=<node-name>
Étape 2: Métriques du Node
# Voir l'utilisation des ressources d'un node
kubectl top node <node-name>
# Voir les détails des ressources
kubectl describe node <node-name> | grep -A 10 "Allocated resources"
Exercice 3: Analyser kube-proxy
Étape 1: Vérifier kube-proxy
# Voir le Pod kube-proxy
kubectl get pods -n kube-system -l k8s-app=kube-proxy
# Voir les logs de kube-proxy
kubectl logs -n kube-system -l k8s-app=kube-proxy --tail=50
Étape 2: Vérifier les Services
# Lister tous les Services
kubectl get services --all-namespaces
# Voir les Endpoints d'un Service
kubectl get endpoints <service-name>
Exercice 4: Container Runtime
Étape 1: Identifier le Runtime
# Voir les informations du node (contient le runtime)
kubectl describe node <node-name> | grep "Container Runtime"
# Voir les images utilisées
kubectl get pods --all-namespaces -o jsonpath='{range .items[*]}{.spec.containers[*].image}{"\n"}{end}' | sort -u
Exercice 5: Pods sur un Node
Étape 1: Pods Assignés
# Voir tous les Pods sur un node spécifique
kubectl get pods --all-namespaces --field-selector spec.nodeName=<node-name>
# Compter les Pods par node
kubectl get pods --all-namespaces -o wide | awk '{print $7}' | sort | uniq -c
Étape 2: Ressources Utilisées
# Voir l'utilisation des ressources par Pod
kubectl top pods --all-namespaces
# Filtrer par node
kubectl top pods --all-namespaces | grep <node-name>
Questions de Réflexion
- Combien de Pods peuvent s'exécuter sur chaque node?
- Comment kubelet gère-t-il les ressources?
- Quel est le rôle de kube-proxy sur chaque node?
- Comment le Container Runtime est-il utilisé?
Nettoyage
Aucun nettoyage nécessaire.
Prochaines Étapes
Lab 2.3: Monitoring des Composants Système
Module 3: Pods et Déploiements
Lab créé le: Décembre 2024