Module 6 · Mise en situation¶
Objectifs
- Mobiliser tout ce qui précède sur un cas concret, en autonomie.
- Adopter une méthode de déploiement et de debug reproductible.
- Durée : variable (compte ~1 h 30) · Pré-requis : le cœur du parcours (et le module 5 si tu as fait l'EKS).
Projet fil rouge - « Déployer & exploiter une appli »¶
Tu vas déployer une petite application (frontend + backend + base) sur un cluster, l'exposer, la configurer, et survivre à quelques pannes - le tout piloté depuis k9s.
Étape 1 - Déploiement¶
- [ ] Crée un namespace
app. - [ ] Déploie un backend (ex:
hashicorp/http-echoou une API simple) + un frontend (nginx). - [ ] Branche la config via ConfigMap et un Secret.
- [ ] Vérifie chaque objet dans k9s (
:deploy,:cm,:secret,:po).
Étape 2 - Exposition¶
- [ ] Crée des Services
ClusterIPpour chaque composant. - [ ] Ajoute un Ingress (ou un Service
LoadBalancersi tu es sur EKS). - [ ] Vérifie le chemin navigateur → Ingress → Service → Pod.
Étape 3 - Résilience & ressources¶
- [ ] Ajoute
requests/limitsà chaque deployment. - [ ] Ajoute des probes (
liveness,readiness). - [ ] Scale le frontend à 3 réplicas, observe la répartition dans k9s.
Étape 4 - Pannes surprises (le mentor en déclenche)¶
Le mentor casse quelque chose pendant que tu as le dos tourné. À toi de diagnostiquer uniquement avec k9s :
- [ ] Un pod en
CrashLoopBackOff→ trouve la cause dans les logs. - [ ] Un Service qui ne répond plus → vérifie les endpoints / labels.
- [ ] Un déploiement bloqué →
describe+ rollout undo. - [ ] Un pod
Pending→ ressources / quota.
Étape 5 - Nettoyage¶
- [ ] Supprime proprement (namespace, et cluster EKS si applicable).
- [ ] Rédige un mini post-mortem : quelles pannes, comment trouvées, en combien de temps.
Grille d'auto-évaluation¶
| Compétence | 🟥 Non acquis | 🟧 En cours | 🟩 Acquis |
|---|---|---|---|
| Naviguer dans k9s sans hésiter | |||
| Debug describe → events → logs | |||
| Déployer + exposer une app | |||
| Gouverner (RBAC, ressources, placement) | |||
| Packager & déployer (Helm, GitOps) (si modules faits) | |||
| Provisionner & détruire un EKS (si module fait) | |||
| Diagnostiquer une panne en autonomie |
Pratique¶
L'épreuve de synthèse auto-évaluée, dans le terminal de ta sandbox - une fois le projet en main :
Joue-la avec le moins d'indices possible : c'est la mesure de ce que tu sais faire seul.
Pour aller plus loin (bonus)¶
- GitOps : déployer via ArgoCD (comme l'infra de Timothé).
- Observabilité : Prometheus + Grafana, lire les métriques dans k9s (
:pulses). - Sécurité :
popeyepour auditer un cluster, NetworkPolicies. - CI/CD : build d'image multi-arch + déploiement automatique.
Quiz éclair¶
Avant de te déclarer autonome, vérifie que ces réflexes sont automatiques.
1. Un pod ne répond plus. Par quoi commences-tu, systématiquement ?
describe → events → logs. L'état du pod et les events disent 90 % des causes ; les
logs (--previous si crash) le reste.
2. Un Service ne route plus le trafic. Que vérifies-tu en premier ?
Ses endpoints (kubectl get endpoints <svc>) : s'ils sont vides, c'est un problème
de labels/selector entre le Service et les pods.
3. Tu as fini la session sur EKS. Quelle est la dernière chose à faire ?
Détruire : supprimer les LoadBalancer, eksctl delete cluster, et vérifier la
console AWS. Le coût maîtrisé fait partie de l'autonomie.
🎉 Bravo ! À ce stade tu pilotes un cluster au k9s, tu debugges en autonomie, et tu sais monter/détruire un cluster managé. La fiche de suivi peut être finalisée.