Kubernetes (K8s) est devenu l’orchestrateur de conteneurs standard en production. Que vous soyez développeur qui déploie ses applications, ops qui maintient l’infrastructure, ou simplement curieux de comprendre comment fonctionne le cloud moderne — ce parcours vous rend autonome sur les gestes essentiels : créer un déploiement, exposer un service, diagnostiquer une erreur, sécuriser un cluster. Pas besoin de viser une certification pour en tirer profit : l’objectif est de vous donner les compétences pratiques utilisables dès demain dans vos projets.
Comment ça se passe ? Vous commencez par comprendre l’architecture, puis vous manipulez les objets de base (Pods, Deployments, Services), avant d’aborder les sujets avancés (sécurité, autoscaling, outils de déploiement). Chaque concept est illustré par des exemples concrets, des commandes à tester, et des liens vers des TP pratiques sur GitHub. À la fin de chaque niveau, un contrôle de connaissances interactif valide vos acquis. Si vous préparez la CKA ou la CKAD, les parcours sont alignés sur les domaines de l’examen.
Au terme de ce parcours, vous serez capable de :
Section intitulée « Au terme de ce parcours, vous serez capable de : »- Déployer une application de bout en bout (Pod → Deployment → Service → exposition)
- Diagnostiquer les erreurs : CrashLoopBackOff, ImagePullBackOff, OOMKilled, Pending
- Sécuriser un cluster avec RBAC et Network Policies
- Automatiser les déploiements avec Helm ou Kustomize
- Scaler automatiquement avec HPA
- Préparer les certifications CKA (admin) ou CKAD (dev)
Vous êtes décidé à apprendre Kubernetes ? Consultez la liste complète de tous les guides disponibles pour trouver exactement ce dont vous avez besoin.
Prérequis : Linux (commandes de base), Docker (conteneurs, images), YAML (syntaxe).
Qu’est-ce que Kubernetes ?
Section intitulée « Qu’est-ce que Kubernetes ? »L’analogie du chef d’orchestre
Section intitulée « L’analogie du chef d’orchestre »Imaginez un orchestre symphonique. Chaque musicien (violon, flûte, percussions) joue sa partition, mais sans chef d’orchestre, c’est la cacophonie. Le chef coordonne tout le monde : il indique quand commencer, ajuste le tempo, et si un musicien fait une fausse note, il corrige immédiatement.
Kubernetes fonctionne exactement pareil, mais avec des conteneurs au lieu de musiciens :
- Les conteneurs sont vos “musiciens” — chacun exécute une partie de votre application (API, base de données, frontend…)
- Kubernetes est le “chef d’orchestre” — il coordonne tous ces conteneurs pour que votre application fonctionne harmonieusement
- Le cluster est la “salle de concert” — l’ensemble des machines où s’exécutent vos conteneurs
Pourquoi a-t-on besoin d’un orchestrateur ?
Section intitulée « Pourquoi a-t-on besoin d’un orchestrateur ? »Avec Docker, vous savez créer et lancer des conteneurs. Mais que se passe-t-il quand vous avez des dizaines de conteneurs sur plusieurs machines ?
| Sans orchestrateur | Avec Kubernetes |
|---|---|
| Vous démarrez chaque conteneur manuellement | Vous déclarez “je veux 3 répliques” — K8s les crée |
| Un conteneur plante → votre app est en panne | K8s détecte la panne et relance le conteneur automatiquement |
| Pic de trafic → votre serveur sature | K8s ajoute des conteneurs pour absorber la charge |
| Mise à jour = interruption de service | K8s déploie progressivement sans coupure |
| Config éparpillée sur chaque machine | Config centralisée, versionnable, auditée |
Kubernetes en une phrase
Section intitulée « Kubernetes en une phrase »Kubernetes (K8s) est un orchestrateur de conteneurs open-source, créé par Google et maintenu par la CNCF. Vous décrivez l’état souhaité de votre application dans des fichiers YAML, Kubernetes le réalise et le maintient — même en cas de panne, de pic de charge ou de mise à jour.
Ce que Kubernetes résout concrètement
Section intitulée « Ce que Kubernetes résout concrètement »| Problème concret | Ce que fait Kubernetes |
|---|---|
| Déploiements manuels → erreurs humaines, configs oubliées | Déploiements déclaratifs : un fichier YAML = une source de vérité |
| Pannes → application indisponible, clients mécontents | Self-healing : redémarrage automatique des conteneurs défaillants |
| Pics de trafic → serveurs saturés, temps de réponse explosent | Autoscaling : ajout/suppression automatique de répliques |
| Configuration dispersée → “ça marche sur ma machine” | ConfigMaps et Secrets : configuration centralisée et sécurisée |
| Mises à jour risquées → interruptions, rollbacks chaotiques | Rolling updates : déploiement progressif, rollback en une commande |
Comment est structuré ce parcours ?
Section intitulée « Comment est structuré ce parcours ? »Cette formation est conçue pour vous accompagner de zéro à l’autonomie complète sur Kubernetes. Chaque guide combine théorie et pratique pour ancrer les concepts durablement :
| Élément | Ce que vous y trouvez |
|---|---|
| Guides détaillés | Explications progressives, du “pourquoi” au “comment”, avec exemples concrets |
| Schémas visuels | Architecture, flux de données, cycles de vie — pour comprendre d’un coup d’œil |
| Commandes commentées | Chaque commande expliquée, avec le résultat attendu |
| TP sur GitHub | Exercices pratiques à faire sur votre cluster local |
| Quizz interactifs | Validez vos acquis à la fin de chaque niveau |
| FAQ | Réponses aux questions que tout le monde se pose |
Un cluster Kubernetes orchestre vos conteneurs sur deux types de nœuds : le Control Plane (cerveau décisionnel avec API Server, etcd, Scheduler) et les Worker Nodes (où s’exécutent vos conteneurs via Kubelet et containerd).
Extrait du TP “Création de Pods” — Voir le TP complet sur GitHub
# 1️⃣ Créer un Pod avec kubectl runkubectl run mon-pod --image=nginx
# 2️⃣ Vérifier son étatkubectl get pods# Le Pod doit être "Running"
# 3️⃣ Afficher les détailskubectl describe pod mon-pod
# 4️⃣ Supprimer le Podkubectl delete pod mon-podÉtape suivante : déployer avec un fichier YAML (meilleure pratique) :
apiVersion: v1kind: Podmetadata: name: mon-podspec: containers: - name: nginx image: nginx ports: - containerPort: 80kubectl apply -f pod-nginx.yamlkubectl logs mon-pod🎯 Challenge : Ajoutez un deuxième conteneur (Alpine) dans le même Pod et testez s’ils peuvent communiquer.
Les 5 questions les plus fréquentes :
- Quels prérequis ? — Linux (terminal, permissions), Docker (images, conteneurs), YAML (syntaxe)
- Combien de temps pour apprendre ? — Bases en 1-2 mois, production-ready en 3-4 mois, certification en 4-6 mois
- CKA ou CKAD ? — CKA pour les admins/SRE, CKAD pour les développeurs. En cas de doute, commencez par CKAD (plus accessible)
- Comment pratiquer sans cloud ? — Minikube ou Kind sur votre machine (2 CPU, 4 GB RAM suffisent)
- Kubernetes est-il obligatoire pour un DevOps ? — Pas obligatoire, mais 85% des offres le mentionnent. C’est la compétence #1 demandée.
Les 10 guides essentiels pour débuter sur Kubernetes
Section intitulée « Les 10 guides essentiels pour débuter sur Kubernetes »Ces guides couvrent 80% des cas d’usage — commencez par là avant d’explorer les sujets avancés.
De kubectl apply à l’exécution : votre manifest YAML traverse l’API Server, est stocké dans etcd, puis le Scheduler assigne un nœud et le Kubelet lance le conteneur.
Rendre vos Pods accessibles : les Services fournissent une adresse stable (ClusterIP interne, NodePort/LoadBalancer externe). Gateway API ajoute le routage HTTP avancé.
Diagnostiquer les erreurs : CrashLoopBackOff, ImagePullBackOff, OOMKilled… Comprendre le cycle de vie d’un Pod est essentiel pour résoudre les problèmes.
Choisissez votre parcours
Section intitulée « Choisissez votre parcours »Selon votre profil, suivez le parcours adapté pour monter en compétence progressivement.
-
Niveau 1 — Fondamentaux 2-4 semaines
- Architecture Kubernetes — Control Plane, Worker Nodes
- Minikube ou Kind — cluster local
- Pods, Services, Deployments
- Écrire des manifests YAML
-
Niveau 2 — Production 4-6 semaines
- Kubeadm — installation production
- Volumes persistants, StorageClass
- StatefulSets, DaemonSets
- RBAC, Network Policies
-
Niveau 3 — Automatisation 4-6 semaines
-
Niveau 1 — Prise en main 2-4 semaines
-
Niveau 2 — Configuration 4-6 semaines
-
Niveau 3 — Scalabilité 4-6 semaines
- HPA, VPA
- Jobs et CronJobs
- GitOps avec ArgoCD
- Certification CKAD
On n’oublie pas la pratique
Section intitulée « On n’oublie pas la pratique »Accéder aux TP Kubernetes sur GitHub
Les exercices couvrent :
- Création et gestion de Pods et Deployments
- Configuration avec ConfigMaps et Secrets
- Exposition via Services et Ingress
- Autoscaling avec HPA
- Déploiement avec Helm
Vous voulez passer les certifications Kubernetes
Section intitulée « Vous voulez passer les certifications Kubernetes »La CNCF (Cloud Native Computing Foundation) propose trois certifications Kubernetes, toutes 100% pratiques. Pas de QCM : vous résolvez des problèmes réels sur un cluster Kubernetes en temps limité. C’est ce qui fait leur valeur sur le marché — elles prouvent que vous savez faire, pas seulement réciter.
Vue d’ensemble des certifications
Section intitulée « Vue d’ensemble des certifications »| Certification | Public cible | Domaines évalués | Durée | Prérequis recommandé |
|---|---|---|---|---|
| CKA | Admins, SRE, DevOps | Installation, configuration, sécurité, troubleshooting | 2h | 6-12 mois de pratique K8s |
| CKAD | Développeurs | Conception, déploiement, configuration d’applications | 2h | 3-6 mois de pratique K8s |
| CKS | Security Engineers | Sécurité des clusters et des workloads | 2h | CKA obligatoire |
CKA — Certified Kubernetes Administrator
Section intitulée « CKA — Certified Kubernetes Administrator »La CKA valide vos compétences d’administrateur de cluster. Vous devez savoir installer, configurer, maintenir et dépanner un cluster Kubernetes en production.
Domaines couverts :
- Cluster Architecture (25%) : composants, installation avec kubeadm, upgrades
- Workloads & Scheduling (15%) : Deployments, ConfigMaps, Secrets, scaling
- Services & Networking (20%) : Services, Ingress, Network Policies, DNS
- Storage (10%) : PV, PVC, StorageClass
- Troubleshooting (30%) : logs, événements, diagnostic de pannes
CKAD — Certified Kubernetes Application Developer
Section intitulée « CKAD — Certified Kubernetes Application Developer »La CKAD valide vos compétences de développeur d’applications sur Kubernetes. L’objectif : savoir packager, déployer et configurer vos applications pour qu’elles tournent correctement sur K8s.
Domaines couverts :
- Application Design & Build (20%) : Dockerfiles, multi-container Pods, init containers
- Application Deployment (20%) : Deployments, rolling updates, Helm
- Application Observability (15%) : Probes, logs, debugging
- Application Environment (25%) : ConfigMaps, Secrets, ServiceAccounts, resources
- Services & Networking (20%) : Services, Ingress, Network Policies
CKS — Certified Kubernetes Security Specialist
Section intitulée « CKS — Certified Kubernetes Security Specialist »La CKS est la certification sécurité avancée. Elle requiert d’avoir déjà la CKA (valide) et évalue votre capacité à sécuriser un cluster et ses workloads.
Domaines couverts :
- Cluster Setup (10%) : Network Policies, CIS benchmarks, Ingress sécurisé
- Cluster Hardening (15%) : RBAC, Service Accounts, restriction des API
- System Hardening (15%) : OS hardening, réduction de la surface d’attaque
- Minimize Microservice Vulnerabilities (20%) : SecurityContext, Pod Security, secrets
- Supply Chain Security (20%) : scan d’images, signature, admission controllers
- Monitoring & Logging (20%) : audit logs, détection d’anomalies
Conseils pour réussir
Section intitulée « Conseils pour réussir »3 mois avant l’examen :
- Pratiquez quotidiennement — Même 30 minutes par jour valent mieux que 4h le week-end
- Utilisez un cluster local — Minikube, Kind ou K3s pour expérimenter sans risque
- Faites les TP de ce parcours — Ils couvrent les domaines de l’examen
- Chronométrez-vous — L’examen est court, la vitesse compte
Ressources recommandées :
Pendant l’examen :
- Lisez bien l’énoncé — Chaque mot compte (namespace, nom exact, labels)
- Utilisez la doc officielle — Vous y avez accès, profitez-en pour copier les YAML
- Ne bloquez pas — Si une question résiste, passez et revenez après
- Vérifiez vos réponses — Un
kubectl getrapide pour confirmer que ça marche - Gérez votre temps — Gardez 10-15 minutes pour relire
Raccourcis essentiels :
# Créer un Pod rapidementkubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
# Créer un Deploymentkubectl create deployment nginx --image=nginx --replicas=3
# Exposer un Deploymentkubectl expose deployment nginx --port=80 --type=NodePort
# Alias recommandésalias k=kubectlexport do="--dry-run=client -o yaml"Résultats : Vous recevez vos résultats sous 24-36h par email.
Si vous réussissez :
- Certificat valable 3 ans (CKA, CKAD) ou 2 ans (CKS)
- Badge Credly à afficher sur LinkedIn
- Accès à la communauté des certifiés
Si vous échouez :
- Une reprise gratuite incluse dans le prix
- Analysez vos points faibles (les domaines sont notés séparément)
- Refaites les labs sur Killer.sh avant de retenter
Liens officiels
Section intitulée « Liens officiels »- CKA — Certified Kubernetes Administrator
- CKAD — Certified Kubernetes Application Developer
- CKS — Certified Kubernetes Security Specialist
- Programme de certification CNCF
On attaque la formation ?
Section intitulée « On attaque la formation ? »Vous avez compris ce qu’est Kubernetes et pourquoi il est devenu incontournable. Maintenant, passez à la pratique ! Choisissez votre première étape selon votre profil :
Vous découvrez Kubernetes ? Installez un cluster local et manipulez les concepts de base avant d’aller plus loin.
Vous développez des applications et voulez les déployer sur Kubernetes ? Commencez par comprendre comment packager et exposer vos apps.
Vous administrez des clusters Kubernetes ? Commencez par l’architecture, puis approfondissez la sécurité et le troubleshooting.
Vous vous posez encore des questions ?
Section intitulée « Vous vous posez encore des questions ? »Je vais vous aider à y répondre dans la FAQ ci-dessous !
Avant de vous lancer dans Kubernetes, vous devez maîtriser trois fondamentaux indispensables. Sans eux, vous risquez de vous perdre dans la complexité de l'orchestration.
Prérequis essentiels
| Compétence | Niveau requis | Concepts clés | Temps d'acquisition |
|---|---|---|---|
| Linux | Intermédiaire | Terminal, permissions, processus, systemd | 2-4 semaines |
| Docker | Intermédiaire | Images, conteneurs, volumes, Dockerfile | 2-3 semaines |
| YAML | Débutant | Syntaxe, indentation, listes, dictionnaires | 2-3 jours |
| Réseau | Bases | TCP/IP, DNS, ports, load balancing | 1-2 semaines |
Commandes Linux à connaître
# Gestion fichiers
ls -la
cd /var/log
cat fichier.txt
grep "error" /var/log/syslog
# Gestion processus
ps aux
top
kill -9 <PID>
# Réseau
curl http://localhost:8080
netstat -tuln
ping google.com
Compétences Docker requises
# Lancer un conteneur
docker run -d -p 80:80 nginx
# Construire une image
docker build -t mon-app:v1 .
# Inspecter
docker ps
docker logs <container>
docker exec -it <container> /bin/sh
Syntaxe YAML pour Kubernetes
# Structure de base d'un manifest
apiVersion: v1
kind: Pod
metadata:
name: mon-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.25
ports:
- containerPort: 80
Checklist avant de commencer
- Savoir naviguer dans un terminal Linux
- Comprendre les permissions (chmod, chown)
- Lancer et gérer des conteneurs Docker
- Écrire un Dockerfile simple
- Comprendre la syntaxe YAML (indentation !)
- Connaître les bases réseau (IP, ports, DNS)
Le temps d'apprentissage dépend de votre niveau de départ et de vos objectifs. Voici un parcours réaliste basé sur une pratique régulière.
Roadmap d'apprentissage
| Phase | Durée | Compétences acquises | Objectif |
|---|---|---|---|
| Niveau 1 - Bases | 2-4 semaines | Pods, Services, Deployments | Déployer une app simple |
| Niveau 2 - Configuration | 4-6 semaines | ConfigMaps, Secrets, Probes, Volumes | App production-ready |
| Niveau 3 - Production | 4-6 semaines | RBAC, Network Policies, HPA, Helm | Cluster sécurisé |
| Niveau 4 - Expert | 2-3 mois | Opérateurs, CRD, troubleshooting avancé | Architecture K8s |
Estimation totale
- Bases opérationnelles : 1-2 mois
- Prêt pour la production : 3-4 mois
- Certification CKA/CKAD : 4-6 mois
- Expert/Architecte : 12+ mois
Planning hebdomadaire recommandé
Lundi-Vendredi : 30-60 min/jour (théorie + pratique)
Week-end : 2-3h (projet pratique, TP)
Exemple semaine 1 :
- Lun : Architecture K8s (vidéo + lecture)
- Mar : Installation Minikube (pratique)
- Mer : Premier Pod (hands-on)
- Jeu : Deployments (théorie + pratique)
- Ven : Services (ClusterIP, NodePort)
- Sam : TP complet - déployer une app
Facteurs d'accélération
| Facteur | Impact | Conseil |
|---|---|---|
| Pratique quotidienne | ★★★ | 30 min/jour > 4h/week-end |
| Projets réels | ★★★ | Déployer votre propre app |
| Cluster local | ★★ | Minikube/Kind toujours disponible |
| Communauté | ★★ | Slack CNCF, forums, meetups |
| TP guidés | ★★ | Suivre des exercices structurés |
Erreurs qui ralentissent
- ❌ Lire sans pratiquer
- ❌ Sauter les prérequis (Docker, Linux)
- ❌ Vouloir tout apprendre d'un coup
- ❌ Ne pas comprendre les erreurs (copier/coller)
- ❌ Ignorer les logs et événements
Les deux certifications sont 100% pratiques (2h sur un vrai cluster). Le choix dépend de votre profil métier et de vos objectifs.
Comparatif CKA vs CKAD
| Critère | CKA | CKAD |
|---|---|---|
| Public cible | Admins, SRE, DevOps | Développeurs |
| Focus | Cluster (installation, sécurité, troubleshooting) | Applications (déploiement, configuration) |
| Durée | 2 heures | 2 heures |
| Questions | 15-20 | 15-20 |
| Score requis | 66% | 66% |
| Prérequis | 6-12 mois pratique K8s | 3-6 mois pratique K8s |
| Difficulté | ★★★ | ★★☆ |
| Validité | 3 ans | 3 ans |
| Prix | $395 | $395 |
Domaines CKA (Administrateur)
Cluster Architecture (25%)
├── Installation avec kubeadm
├── Upgrade cluster
└── Backup/restore etcd
Workloads & Scheduling (15%)
├── Deployments, scaling
├── ConfigMaps, Secrets
└── Node affinity, taints
Services & Networking (20%)
├── Services (ClusterIP, NodePort, LB)
├── Ingress controllers
└── Network Policies
Storage (10%)
├── PV, PVC
├── StorageClass
└── Volume modes
Troubleshooting (30%)
├── Logs, events
├── Cluster components
└── Application debugging
Domaines CKAD (Développeur)
Application Design & Build (20%)
├── Dockerfile, multi-container Pods
├── Init containers
└── Volumes
Application Deployment (20%)
├── Deployments, rolling updates
├── Helm basics
└── Blue/green, canary
Application Observability (15%)
├── Probes (liveness, readiness)
├── Logs, debugging
└── Monitoring basics
Application Environment (25%)
├── ConfigMaps, Secrets
├── ServiceAccounts
└── Resources (requests, limits)
Services & Networking (20%)
├── Services
├── Ingress
└── Network Policies
Quel choix selon votre profil ?
| Votre profil | Certification recommandée |
|---|---|
| Développeur backend/frontend | CKAD puis CKA |
| Admin système / SRE | CKA puis CKAD |
| DevOps Engineer | CKA puis CKAD |
| Architecte Cloud | CKA + CKAD |
| Reconversion | CKAD (plus accessible) |
Conseil stratégique
Si vous hésitez, commencez par la CKAD :
- Courbe d'apprentissage plus douce
- Compétences directement applicables
- Prépare le terrain pour la CKA
Absolument. La certification valide vos compétences, mais la vraie valeur est dans ce que vous savez faire concrètement. Beaucoup de professionnels utilisent K8s quotidiennement sans certification.
Certification vs Compétences réelles
| Aspect | Sans certification | Avec certification |
|---|---|---|
| Compétences | Identiques si pratique régulière | Validées officiellement |
| Employabilité | Démo portfolio + expérience | Badge reconnu + filtre ATS |
| Salaire | Négociation sur expérience | +10-15% en moyenne |
| Coût | 0€ | $395 + temps préparation |
| Stress | Apprentissage libre | Examen chronométré |
Quand la certification est utile
✅ Recommandée si :
- Recherche d'emploi (filtre automatique des CV)
- Changement de carrière (preuve de compétence)
- Entreprise qui valorise les certifications
- Besoin de structurer son apprentissage
- Client exige des certifications (consulting)
❌ Pas nécessaire si :
- Poste actuel utilise déjà K8s
- Portfolio de projets démontrable
- Petite structure / startup
- Budget limité
Alternative : construire un portfolio
# Projets qui démontrent vos compétences :
1. Déployer une app multi-tier
└── Frontend + Backend + Base de données
└── Ingress avec TLS
└── ConfigMaps, Secrets
2. Pipeline CI/CD complet
└── Build Docker
└── Push registry
└── Deploy sur K8s
└── Tests automatisés
3. Monitoring stack
└── Prometheus + Grafana
└── Alerting
└── Dashboards custom
4. GitOps avec ArgoCD
└── Repo Git = source de vérité
└── Sync automatique
└── Rollback facile
Parcours sans certification
| Étape | Durée | Livrable |
|---|---|---|
| Bases K8s | 1 mois | App déployée sur Minikube |
| Production-ready | 1 mois | App avec Probes, ConfigMaps, Secrets |
| CI/CD | 2 semaines | Pipeline GitLab/GitHub Actions |
| Monitoring | 2 semaines | Stack Prometheus/Grafana |
| Projet perso | 1 mois | App complète sur repo GitHub |
Conseil
Concentrez-vous d'abord sur la pratique. Si vous maîtrisez K8s concrètement, la certification devient une formalité (1-2 semaines de révision suffisent).
Plusieurs solutions permettent de créer un cluster Kubernetes local gratuitement sur votre machine. C'est suffisant pour 90% de l'apprentissage.
Comparatif des solutions locales
| Outil | Ressources | Installation | Cas d'usage | Recommandé pour |
|---|---|---|---|---|
| Minikube | 2 CPU, 4 GB RAM | Facile | Dev, apprentissage | Débutants ★★★ |
| Kind | 2 CPU, 2 GB RAM | Très facile | CI/CD, tests | DevOps ★★★ |
| K3s | 1 CPU, 512 MB RAM | Facile | Edge, IoT, léger | Production légère ★★ |
| Docker Desktop | 4 CPU, 8 GB RAM | Intégré | Dev Mac/Windows | Développeurs ★★ |
| Rancher Desktop | 4 CPU, 4 GB RAM | Facile | Alternative Docker Desktop | Multi-runtime ★★ |
Installation Minikube (recommandé)
# Linux
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
# macOS
brew install minikube
# Windows (PowerShell admin)
winget install minikube
# Démarrer le cluster
minikube start --cpus=2 --memory=4096
# Vérifier
kubectl get nodes
minikube status
# Addons utiles
minikube addons enable ingress
minikube addons enable metrics-server
minikube addons enable dashboard
# Accéder au dashboard
minikube dashboard
Installation Kind (Kubernetes in Docker)
# Installation
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
# Créer un cluster
kind create cluster --name mon-cluster
# Cluster multi-nœuds
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
# Supprimer
kind delete cluster --name mon-cluster
Premier déploiement de test
# Créer un deployment
kubectl create deployment nginx --image=nginx
# Exposer le service
kubectl expose deployment nginx --port=80 --type=NodePort
# Voir le résultat
kubectl get pods,svc
# Accéder (Minikube)
minikube service nginx
# Nettoyer
kubectl delete deployment nginx
kubectl delete service nginx
Ressources machine recommandées
| Niveau | RAM | CPU | Disque |
|---|---|---|---|
| Minimum | 8 GB | 2 cores | 20 GB |
| Confortable | 16 GB | 4 cores | 50 GB |
| Multi-clusters | 32 GB | 8 cores | 100 GB |
Alternatives cloud gratuites
Si votre machine est limitée :
- Killercoda : Labs K8s gratuits dans le navigateur
- Play with Kubernetes : Cluster éphémère (4h)
- Google Cloud Free Tier : $300 crédits
- AWS Free Tier : t2.micro (limité mais gratuit)
Le parcours administrateur Kubernetes mène à la certification CKA et aux postes SRE/DevOps. Il couvre l'installation, la configuration, la sécurité et le troubleshooting de clusters.
Roadmap CKA complète
| Phase | Durée | Thèmes | Validation |
|---|---|---|---|
| 1. Fondamentaux | 2-4 sem | Architecture, kubectl, Pods | Quiz architecture |
| 2. Workloads | 3-4 sem | Deployments, Services, ConfigMaps | App déployée |
| 3. Cluster Admin | 4-6 sem | kubeadm, etcd, upgrades | Cluster installé |
| 4. Stockage | 2-3 sem | PV, PVC, StorageClass | Volume persistant |
| 5. Réseau | 3-4 sem | Services, Ingress, Network Policies | App exposée + sécurisée |
| 6. Sécurité | 3-4 sem | RBAC, ServiceAccounts, secrets | Cluster hardened |
| 7. Troubleshooting | 3-4 sem | Logs, events, debugging | Incidents résolus |
| 8. Préparation exam | 2-4 sem | Killer.sh, examens blancs | Score >75% |
Phase 1 : Architecture (semaines 1-4)
# Comprendre les composants
kubectl get nodes
kubectl get pods -n kube-system
# Control Plane
# - kube-apiserver : point d'entrée API
# - etcd : stockage cluster
# - kube-scheduler : placement Pods
# - kube-controller-manager : boucles de contrôle
# Worker Nodes
# - kubelet : agent sur chaque nœud
# - kube-proxy : règles réseau
# - container runtime : containerd/CRI-O
# Commandes essentielles
kubectl cluster-info
kubectl get componentstatuses
kubectl describe node <node-name>
Phase 3 : Installation cluster (kubeadm)
# Sur le control plane
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# Configurer kubectl
mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
# Installer CNI (Calico)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
# Joindre les workers
kubeadm token create --print-join-command
# Sur chaque worker :
sudo kubeadm join <control-plane>:6443 --token ... --discovery-token-ca-cert-hash ...
# Backup etcd (critique !)
ETCDCTL_API=3 etcdctl snapshot save backup.db \
--endpoints=https://127.0.0.1:2379 \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key
Phase 6 : Sécurité RBAC
# Role : permissions dans un namespace
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: dev
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
---
# RoleBinding : assigner le Role
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: dev
subjects:
- kind: User
name: alice
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
Phase 7 : Troubleshooting (30% de l'examen !)
# Diagnostic Pod
kubectl describe pod <pod-name>
kubectl logs <pod-name> --previous
kubectl get events --sort-by='.lastTimestamp'
# Diagnostic Node
kubectl describe node <node-name>
ssh <node> systemctl status kubelet
ssh <node> journalctl -u kubelet -f
# Diagnostic Cluster
kubectl get componentstatuses
kubectl get pods -n kube-system
sudo crictl ps # sur le nœud
# Erreurs fréquentes
# CrashLoopBackOff → kubectl logs
# ImagePullBackOff → vérifier image/registry
# Pending → kubectl describe (events)
# OOMKilled → augmenter limits
Checklist avant examen CKA
- Cluster installé avec kubeadm (from scratch)
- Backup/restore etcd fonctionnel
- Upgrade cluster maîtrisé
- RBAC configuré (Role, RoleBinding)
- Network Policies appliquées
- Ingress controller déployé
- Troubleshooting : 5 scénarios résolus
- Killer.sh : 2 sessions complètes
- Temps : chaque question <5 min
Le parcours développeur Kubernetes mène à la certification CKAD. L'objectif : savoir packager, déployer et configurer vos applications pour qu'elles tournent sur K8s.
Roadmap CKAD complète
| Phase | Durée | Thèmes | Validation |
|---|---|---|---|
| 1. Conteneurs | 1-2 sem | Dockerfile, images, registries | Image buildée et pushée |
| 2. Pods | 2-3 sem | Pods, multi-containers, init containers | Pod complexe déployé |
| 3. Deployments | 2-3 sem | Deployments, rolling updates, rollback | App scalée |
| 4. Configuration | 3-4 sem | ConfigMaps, Secrets, env vars | App configurée |
| 5. Observabilité | 2-3 sem | Probes, logs, debugging | App résiliente |
| 6. Services | 2-3 sem | Services, Ingress | App exposée |
| 7. Packaging | 2-3 sem | Helm, Kustomize | Chart Helm créé |
| 8. Préparation | 2-3 sem | Killer.sh, examens blancs | Score >75% |
Phase 2 : Maîtriser les Pods
# Pod multi-containers
apiVersion: v1
kind: Pod
metadata:
name: app-with-sidecar
spec:
initContainers:
- name: init-db
image: busybox
command: ['sh', '-c', 'until nc -z db-service 5432; do sleep 2; done']
containers:
- name: app
image: mon-app:v1
ports:
- containerPort: 8080
volumeMounts:
- name: shared-logs
mountPath: /var/log/app
- name: log-shipper
image: fluent/fluent-bit
volumeMounts:
- name: shared-logs
mountPath: /var/log/app
volumes:
- name: shared-logs
emptyDir: {}
Phase 4 : Configuration (ConfigMaps & Secrets)
# ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
DATABASE_HOST: "postgres.default.svc"
LOG_LEVEL: "info"
config.json: |
{
"feature_x": true,
"max_connections": 100
}
---
# Secret
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
type: Opaque
stringData:
DATABASE_PASSWORD: "super-secret"
API_KEY: "abc123"
---
# Utilisation dans un Pod
apiVersion: v1
kind: Pod
metadata:
name: app
spec:
containers:
- name: app
image: mon-app:v1
envFrom:
- configMapRef:
name: app-config
- secretRef:
name: app-secrets
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: app-config
Phase 5 : Probes (résilience)
apiVersion: apps/v1
kind: Deployment
metadata:
name: app
spec:
replicas: 3
template:
spec:
containers:
- name: app
image: mon-app:v1
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 10
periodSeconds: 5
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 5
periodSeconds: 3
startupProbe:
httpGet:
path: /healthz
port: 8080
failureThreshold: 30
periodSeconds: 10
Phase 7 : Helm basics
# Créer un chart
helm create mon-app
# Structure
mon-app/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── ingress.yaml
# Installer
helm install mon-app ./mon-app -f values-prod.yaml
# Mettre à jour
helm upgrade mon-app ./mon-app --set image.tag=v2
# Rollback
helm rollback mon-app 1
Raccourcis kubectl (vitesse = clé CKAD)
# Créer rapidement
kubectl run nginx --image=nginx --port=80
kubectl create deployment nginx --image=nginx --replicas=3
kubectl expose deployment nginx --port=80 --type=NodePort
# Générer YAML (ne pas écrire from scratch !)
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > deploy.yaml
# Alias essentiels
alias k=kubectl
export do="--dry-run=client -o yaml"
# Exemples
k run nginx --image=nginx $do > pod.yaml
k create deploy nginx --image=nginx $do > deploy.yaml
Checklist avant examen CKAD
- Pods multi-containers maîtrisés
- ConfigMaps et Secrets (envFrom, volumeMounts)
- Probes (liveness, readiness, startup)
- Resources (requests, limits)
- Services et Ingress
- Jobs et CronJobs
- Helm install/upgrade/rollback
- Raccourcis kubectl fluides
- Killer.sh : 2 sessions complètes
- Chaque question <4 min
La CKS (Certified Kubernetes Security Specialist) est la certification la plus avancée. Elle s'adresse aux professionnels expérimentés qui veulent se spécialiser en sécurité Kubernetes.
Prérequis et positionnement
| Critère | CKS |
|---|---|
| Prérequis | CKA valide (obligatoire) |
| Expérience recommandée | 1-2 ans K8s en production |
| Durée examen | 2 heures |
| Score requis | 67% |
| Validité | 2 ans (vs 3 ans CKA/CKAD) |
| Prix | $395 |
| Difficulté | ★★★★ (la plus difficile) |
Domaines couverts
Cluster Setup (10%)
├── Network Policies pour isoler les Pods
├── CIS Kubernetes Benchmark
└── Ingress avec TLS
Cluster Hardening (15%)
├── RBAC : moindre privilège
├── ServiceAccounts : tokens, automount
└── Restriction des API non nécessaires
System Hardening (15%)
├── Réduire la surface d'attaque (AppArmor, seccomp)
├── Limiter les syscalls
└── Kernel hardening
Minimize Microservice Vulnerabilities (20%)
├── SecurityContext (runAsNonRoot, readOnlyRootFilesystem)
├── Pod Security Standards
├── Gestion des Secrets (encryption at rest)
└── Runtime sandboxing (gVisor, Kata)
Supply Chain Security (20%)
├── Scan d'images (Trivy, Grype)
├── Signature d'images (Cosign, Notary)
├── Admission controllers (OPA Gatekeeper, Kyverno)
└── Base images minimales
Monitoring & Logging (20%)
├── Audit logs Kubernetes
├── Détection d'anomalies (Falco)
└── Analyse comportementale
Exemple : Pod Security
apiVersion: v1
kind: Pod
metadata:
name: secure-pod
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 2000
containers:
- name: app
image: mon-app:v1
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
resources:
limits:
cpu: "500m"
memory: "512Mi"
Pour qui est la CKS ?
✅ Recommandée si :
- Security Engineer / DevSecOps
- SRE senior responsable de la sécurité
- Consultant sécurité cloud
- Architecte avec focus sécurité
- Évolution de carrière vers la sécurité
❌ Pas prioritaire si :
- Moins de 1 an d'expérience K8s
- Rôle purement développeur
- Pas de responsabilité sécurité
- CKA pas encore obtenue
ROI de la CKS
| Bénéfice | Impact |
|---|---|
| Salaire | +15-25% vs CKA seule |
| Postes accessibles | Security Engineer, DevSecOps |
| Crédibilité | Expertise reconnue |
| Rareté | Moins de 10% des certifiés K8s |
Parcours recommandé
1. CKA (6-12 mois expérience K8s)
↓
2. Production K8s (6-12 mois)
↓
3. CKS (focus sécurité)
La préparation aux certifications K8s combine théorie, pratique intensive et simulation d'examen. Voici les meilleures ressources par catégorie.
Ressources officielles (gratuites)
| Ressource | Type | URL | Usage |
|---|---|---|---|
| kubernetes.io/docs | Documentation | kubernetes.io | Référence pendant l'examen |
| Kubernetes The Hard Way | Tutorial | github.com/kelseyhightower | Comprendre les internals |
| CNCF Training | Cours gratuits | training.linuxfoundation.org | Bases solides |
Plateformes de formation (payantes)
| Plateforme | Prix | Points forts | Recommandé pour |
|---|---|---|---|
| Killer.sh | Inclus exam | Simulateur identique | Tous (essentiel) |
| KodeKloud | $15-30/mois | Labs interactifs, parcours complet | Débutants → CKA/CKAD |
| Udemy (Mumshad) | $15-30 | Cours + labs, très complet | CKA/CKAD |
| A Cloud Guru | $35/mois | Multicloud, certifications | Multi-certifications |
| Linux Foundation | $300+ | Officiel, certification bundle | Budget entreprise |
Killer.sh : le simulateur essentiel
# Inclus avec l'inscription à l'examen CNCF
# 2 sessions de simulation (36h chacune)
# Environnement identique à l'examen
Conseils Killer.sh :
1. Faire la 1ère session 2 semaines avant l'examen
2. Analyser chaque erreur en détail
3. Refaire les questions ratées
4. Faire la 2ème session 3-5 jours avant
5. Viser >80% avant de passer l'examen réel
Labs pratiques gratuits
| Plateforme | Durée | Niveau | Accès |
|---|---|---|---|
| Killercoda | Illimité | Débutant-Intermédiaire | killercoda.com |
| Play with K8s | 4h/session | Débutant | labs.play-with-k8s.com |
| Katacoda | Variable | Tous | katacoda.com |
| Google Qwiklabs | Crédits | Intermédiaire | qwiklabs.com |
Livres recommandés
Débutant :
- "Kubernetes: Up and Running" (O'Reilly)
- "The Kubernetes Book" (Nigel Poulton)
CKA/CKAD :
- "Certified Kubernetes Administrator Study Guide" (Benjamin Muschko)
- "Certified Kubernetes Application Developer Study Guide" (Benjamin Muschko)
Avancé :
- "Production Kubernetes" (O'Reilly)
- "Kubernetes Patterns" (O'Reilly)
Planning de révision optimisé
8 semaines avant :
├── Semaine 1-2 : Cours complet (KodeKloud/Udemy)
├── Semaine 3-4 : Labs pratiques intensifs
├── Semaine 5-6 : Killer.sh session 1 + révision points faibles
├── Semaine 7 : Killer.sh session 2
└── Semaine 8 : Révision finale + examen
Quotidien (dernières 2 semaines) :
├── 30 min : Révision théorie (domaines faibles)
├── 60 min : Pratique kubectl (sans doc)
└── 30 min : Questions type examen
Checklist pré-examen
- Documentation K8s bookmarkée (sections utiles)
- Alias kubectl configurés (
alias k=kubectl) - Killer.sh : score >75% sur les 2 sessions
- Chaque domaine d'examen couvert
- Vitesse : <5 min par question
- Environnement test : webcam, micro, pièce calme
- ID valide prêt
- Check technique PSI (navigateur, webcam)
Kubernetes est devenu le standard de facto pour l'orchestration de conteneurs. Sa maîtrise est un atout majeur pour tout profil DevOps, même si vous n'administrez pas directement de clusters.
Kubernetes dans l'écosystème DevOps
| Domaine DevOps | Rôle de Kubernetes | Importance |
|---|---|---|
| CI/CD | Target de déploiement | ★★★ Essentiel |
| Infrastructure as Code | Manifests YAML, Helm | ★★★ Essentiel |
| GitOps | ArgoCD, Flux | ★★★ Essentiel |
| Monitoring | Prometheus, Grafana | ★★★ Essentiel |
| Sécurité | RBAC, Network Policies | ★★ Important |
| Logging | ELK, Loki | ★★ Important |
Statistiques du marché (2024-2025)
Adoption Kubernetes :
├── 96% des organisations utilisent ou évaluent K8s (CNCF Survey)
├── 78% en production
├── 5.6M+ développeurs utilisent K8s
└── Croissance : +30% par an
Offres d'emploi DevOps :
├── 85% mentionnent Kubernetes
├── 70% mentionnent Docker
├── 60% mentionnent Terraform
└── K8s = compétence #1 demandée
Salaires DevOps (France, 2024) :
├── Sans K8s : 45-55k€
├── Avec K8s : 55-70k€
├── Expert K8s : 70-90k€
└── +20-30% avec certifications
Profils DevOps et niveau K8s requis
| Profil | Niveau K8s requis | Compétences clés |
|---|---|---|
| DevOps Junior | Bases | Deployments, Services, kubectl |
| DevOps Engineer | Intermédiaire | Helm, CI/CD, monitoring |
| SRE | Avancé | Troubleshooting, scaling, sécurité |
| Platform Engineer | Expert | Architecture, opérateurs, multi-cluster |
| DevSecOps | Avancé | RBAC, Network Policies, scanning |
Pipeline CI/CD typique avec K8s
# .gitlab-ci.yml
stages:
- build
- test
- deploy
build:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
deploy-staging:
stage: deploy
script:
- kubectl config use-context staging
- helm upgrade --install app ./chart \
--set image.tag=$CI_COMMIT_SHA
- kubectl rollout status deployment/app
deploy-prod:
stage: deploy
script:
- kubectl config use-context production
- helm upgrade --install app ./chart \
--set image.tag=$CI_COMMIT_SHA
when: manual
only:
- main
Alternatives à Kubernetes
| Solution | Cas d'usage | Quand préférer |
|---|---|---|
| Docker Compose | Dev local, petites apps | <10 conteneurs, 1 serveur |
| Docker Swarm | Simplicité, petit cluster | Équipe petite, migration Docker |
| Nomad | Multi-workload | VMs + conteneurs + batch |
| ECS/Fargate | AWS native | 100% AWS, serverless |
| Cloud Run | GCP serverless | Apps stateless, scaling auto |
Conclusion
Kubernetes n'est pas obligatoire, mais sa maîtrise :
- Ouvre 85% des offres DevOps
- Augmente le salaire de 20-30%
- Permet de travailler sur des projets complexes
- Est transférable (tous les clouds, on-premise)
Recommandation : même si vous n'administrez pas de clusters, comprenez les concepts (Pods, Services, Deployments) pour collaborer efficacement avec les équipes infra et débugger en production.