Exercice 01 : Maîtriser les commandes kubectl essentielles
🎯 Objectifs
À la fin de cet exercice, vous serez capable de :
- ✅ Lister les ressources d'un cluster (pods, nodes, services)
- ✅ Inspecter une ressource avec
kubectl describe - ✅ Consulter les logs d'un conteneur
- ✅ Ouvrir un shell interactif dans un pod
- ✅ Appliquer et supprimer un manifest YAML
Durée estimée : 15 minutes
Difficulté : ⭐☆☆☆☆ (Débutant)
Prérequis : minikube installé et démarré (minikube start)
📖 Contexte
kubectl est le couteau suisse de Kubernetes. Avant de gérer des applications complexes, il faut maîtriser les commandes du quotidien : observer l'état du cluster, inspecter une ressource, lire les logs, et interagir avec un conteneur en cours d'exécution.
📋 Énoncé
Vous allez déployer un pod nginx et utiliser les commandes kubectl fondamentales pour l'inspecter, consulter ses logs et interagir avec lui.
Résultat attendu :
- Un pod
nginx-demoen étatRunning - Maîtrise des commandes
get,describe,logs,exec,delete
🧭 Déroulement de l'exercice
Tâche 1 : Explorer le cluster
Listez les noeuds du cluster, puis les pods de tous les namespaces.
Indice :
kubectl get nodesetkubectl get pods --all-namespaces(ou-A)
Vérification : Vous voyez au moins un noeud Ready et des pods dans kube-system.
Tâche 2 : Créer un pod nginx et lister les ressources
Appliquez le manifest nginx-demo.yaml fourni dans la section Solutions, puis listez les pods du namespace default.
Indice :
kubectl apply -f nginx-demo.yamlpuiskubectl get pods
Vérification : Le pod nginx-demo passe à l'état Running en quelques secondes.
Tâche 3 : Inspecter le pod
Utilisez kubectl describe sur le pod nginx-demo pour voir ses events, son image, son IP et ses limites.
Indice :
kubectl describe pod nginx-demo
Vérification : Vous lisez l'IP du pod et l'événement Started container nginx.
Tâche 4 : Consulter les logs
Affichez les logs du conteneur nginx du pod nginx-demo.
Indice :
kubectl logs nginx-demo
Vérification : Vous voyez les logs d'accès nginx (ou un message de démarrage).
Tâche 5 : Ouvrir un shell interactif
Exécutez un shell /bin/bash dans le pod nginx-demo, vérifiez que nginx tourne avec curl localhost, puis quittez.
Indice :
kubectl exec -it nginx-demo -- /bin/bash
Vérification : La commande curl localhost retourne le HTML de la page nginx par défaut.
🗂️ Mini-Projet : Inventaire de cluster
Créez un pod busybox-demo depuis le manifest ci-dessous, puis répondez aux questions avec les commandes kubectl.
# busybox-demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: busybox-demo
labels:
app: demo
spec:
containers:
- name: busybox
image: busybox:1.36
command: ["sleep", "3600"]Checkpoints :
kubectl get pods -o wideaffiche l'IP du podbusybox-demokubectl describe pod busybox-demomontre l'imagebusybox:1.36kubectl exec -it busybox-demo -- sh -c "echo hello"affichehellokubectl get pods -n kube-systemliste les pods systèmekubectl delete pod busybox-demosupprime le pod proprement