Formation Kubernetes
Orchestration de Conteneurs et Déploiement Cloud-Native
Code du cours: 420-911-MA
Session: Hiver 2025
Enseignant: Haythem Rehouma
Institution: inskillflow academy
Vue d'Ensemble du Cours
Cette formation complète vous permettra de maîtriser Kubernetes, la plateforme d'orchestration de conteneurs la plus utilisée au monde. De l'introduction aux concepts avancés, vous apprendrez à déployer, gérer et scaler des applications conteneurisées en production.
Objectifs d'Apprentissage
À la fin de ce cours, vous serez capable de:
- Comprendre l'architecture et les concepts fondamentaux de Kubernetes
- Déployer et gérer des applications conteneurisées
- Configurer des services, réseaux et stockage
- Implémenter la sécurité et le contrôle d'accès (RBAC)
- Utiliser Helm pour le package management
- Monitorer et déboguer des clusters Kubernetes
- Déployer des applications en production avec les meilleures pratiques
Approche Pédagogique
70% Pratique - 30% Théorie
Chaque module combine:
- Explications théoriques détaillées avec diagrammes Mermaid
- Laboratoires pratiques hands-on
- Exemples concrets et cas d'usage réels
- Exercices et quiz de validation
Plan de Cours - 12 Modules
MODULE 1 - Introduction à Kubernetes ✅ COMPLET
Durée: 2-3 séances
Contenu:
- Qu'est-ce que Kubernetes et pourquoi l'utiliser?
- Histoire et évolution (Docker → Kubernetes)
- Concepts fondamentaux (Pods, Nodes, Clusters)
- Architecture Kubernetes (Control Plane vs Worker Nodes)
- Comparaison avec d'autres solutions d'orchestration
Objectifs:
- Comprendre le rôle de Kubernetes dans le cloud-native
- Identifier les composants principaux
- Découvrir l'écosystème Kubernetes
Labs:
- Lab 1.1: Premier Déploiement Kubernetes
MODULE 2 - Architecture et Composants Kubernetes ✅ COMPLET
Durée: 2-3 séances
Contenu:
- Architecture détaillée du Control Plane
- API Server
- etcd
- Controller Manager
- Scheduler
- Composants des Worker Nodes
- kubelet
- kube-proxy
- Container Runtime
- Add-ons et extensions
- Communication inter-composants
Objectifs:
- Comprendre le fonctionnement interne de Kubernetes
- Identifier le rôle de chaque composant
- Visualiser les flux de communication
Labs:
- Lab 2.1: Inspection du Control Plane
- Lab 2.2: Analyse des Worker Nodes
- Lab 2.3: Monitoring des composants système
MODULE 3 - Pods et Déploiements ✅ COMPLET
Durée: 3-4 séances
Contenu:
- Pods: unité atomique de déploiement
- Déclarations YAML et JSON
- Labels et Selectors
- ReplicaSets et gestion de la réplication
- Deployments: déploiements déclaratifs
- Stratégies de déploiement (Rolling Update, Blue/Green, Canary)
- Health Checks (Liveness, Readiness, Startup Probes)
Objectifs:
- Maîtriser les Pods et leur cycle de vie
- Déployer des applications avec Deployments
- Gérer les mises à jour sans interruption
Labs:
- Lab 3.1: Création et gestion de Pods
- Lab 3.2: Déploiement avec ReplicaSets
- Lab 3.3: Deployments et Rolling Updates
- Lab 3.4: Configuration des Health Checks
MODULE 4 - Services et Networking ✅ COMPLET
Durée: 3-4 séances
Contenu:
- Services: exposition des applications
- Types de Services (ClusterIP, NodePort, LoadBalancer, ExternalName)
- Service Discovery et DNS interne
- Endpoints et EndpointSlices
- Network Policies
- Ingress (concept, sera approfondi au Module 8)
- CNI (Container Network Interface)
Objectifs:
- Exposer des applications dans le cluster
- Comprendre le networking Kubernetes
- Sécuriser la communication réseau
Labs:
- Lab 4.1: Services ClusterIP et NodePort
- Lab 4.2: Service Discovery avec DNS
- Lab 4.3: Network Policies
- Lab 4.4: LoadBalancer et intégration cloud
MODULE 5 - Configuration et Secrets ✅ COMPLET
Durée: 2-3 séances
Contenu:
- ConfigMaps: gestion de la configuration
- Secrets: gestion des données sensibles
- Variables d'environnement
- Volumes de type ConfigMap et Secret
- Bonnes pratiques de sécurité
- External Secrets Operator (introduction)
Objectifs:
- Séparer la configuration du code
- Gérer les secrets de manière sécurisée
- Appliquer les bonnes pratiques
Labs:
- Lab 5.1: Création et utilisation de ConfigMaps
- Lab 5.2: Gestion des Secrets
- Lab 5.3: Injection de configuration dans les Pods
- Lab 5.4: Rotation des secrets
MODULE 6 - Stockage et Volumes ✅ COMPLET
Durée: 3-4 séances
Contenu:
- Volumes: types et utilisation
- PersistentVolumes (PV) et PersistentVolumeClaims (PVC)
- StorageClasses et provisionnement dynamique
- Types de stockage (local, NFS, cloud providers)
- Volume Snapshots
- StatefulSets: applications avec état
Objectifs:
- Gérer le stockage persistant
- Comprendre les différents types de volumes
- Déployer des applications stateful
Labs:
- Lab 6.1: Volumes ephemeral et emptyDir
- Lab 6.2: PersistentVolumes et PVCs
- Lab 6.3: StorageClasses et provisionnement dynamique
- Lab 6.4: StatefulSet avec stockage persistant
MODULE 7 - Workloads Avancés ✅ COMPLET
Durée: 3-4 séances
Contenu:
- StatefulSets: applications avec état
- DaemonSets: déploiement sur tous les nodes
- Jobs: tâches ponctuelles
- CronJobs: tâches planifiées
- Init Containers
- Sidecar Pattern
Objectifs:
- Utiliser les différents types de workloads
- Comprendre les cas d'usage spécifiques
- Implémenter des patterns avancés
Labs:
- Lab 7.1: StatefulSet pour base de données
- Lab 7.2: DaemonSet pour monitoring
- Lab 7.3: Jobs et CronJobs
- Lab 7.4: Init Containers et Sidecars
MODULE 8 - Ingress et Load Balancing ✅ COMPLET
Durée: 2-3 séances
Contenu:
- Ingress: exposition HTTP/HTTPS
- Ingress Controllers (NGINX, Traefik, etc.)
- Ingress Rules et Path-based routing
- TLS/SSL et certificats
- Load Balancing avancé
- Service Mesh (introduction Istio/Linkerd)
Objectifs:
- Exposer des applications web via Ingress
- Configurer le routage et le load balancing
- Sécuriser les communications HTTPS
Labs:
- Lab 8.1: Configuration d'Ingress NGINX
- Lab 8.2: Path-based routing
- Lab 8.3: TLS/SSL avec cert-manager
- Lab 8.4: Multi-domaines et virtual hosts
MODULE 9 - Sécurité et RBAC ✅ COMPLET
Durée: 3-4 séances
Contenu:
- Authentification et autorisation
- RBAC (Role-Based Access Control)
- Roles et RoleBindings
- ClusterRoles et ClusterRoleBindings
- Service Accounts
- Pod Security Policies / Pod Security Standards
- Network Policies (approfondissement)
- Secrets management avancé
Objectifs:
- Implémenter la sécurité dans Kubernetes
- Gérer les permissions avec RBAC
- Sécuriser les applications et le cluster
Labs:
- Lab 9.1: Création de Roles et RoleBindings
- Lab 9.2: Service Accounts et permissions
- Lab 9.3: Pod Security Standards
- Lab 9.4: Audit de sécurité
MODULE 10 - Helm et Package Management ✅ COMPLET
Durée: 2-3 séances
Contenu:
- Helm: gestionnaire de packages Kubernetes
- Charts et Releases
- Templates et valeurs
- Hooks et dépendances
- Création de Charts personnalisés
- Helmfile pour la gestion multi-environnements
- Artifact Hub et Charts publics
Objectifs:
- Utiliser Helm pour déployer des applications
- Créer et maintenir des Charts
- Gérer les déploiements complexes
Labs:
- Lab 10.1: Installation et utilisation de Charts Helm
- Lab 10.2: Personnalisation avec values.yaml
- Lab 10.3: Création d'un Chart personnalisé
- Lab 10.4: Helmfile et multi-environnements
MODULE 11 - Monitoring et Observabilité ✅ COMPLET
Durée: 3-4 séances
Contenu:
- Métriques Kubernetes (cAdvisor, kube-state-metrics)
- Prometheus: collecte et stockage de métriques
- Grafana: visualisation et dashboards
- Logging avec Fluentd/Fluent Bit et ELK
- Distributed Tracing (Jaeger, Zipkin)
- Alerting avec Alertmanager
- Health Checks et auto-healing
Objectifs:
- Monitorer les clusters et applications
- Visualiser les métriques et logs
- Implémenter l'observabilité complète
Labs:
- Lab 11.1: Installation de Prometheus et Grafana
- Lab 11.2: Création de dashboards personnalisés
- Lab 11.3: Configuration du logging
- Lab 11.4: Alerting et notifications
MODULE 12 - Déploiement en Production ✅ COMPLET
Durée: 3-4 séances
Contenu:
- Préparation pour la production
- Multi-clusters et High Availability
- Backup et Disaster Recovery
- CI/CD avec Kubernetes (GitOps avec ArgoCD/Flux)
- Resource Management (Requests, Limits, QoS)
- Autoscaling (HPA, VPA, Cluster Autoscaler)
- Troubleshooting et debugging
- Best practices production
Objectifs:
- Déployer des applications en production
- Implémenter la haute disponibilité
- Optimiser les ressources et les coûts
Labs:
- Lab 12.1: Configuration de Resource Management
- Lab 12.2: Autoscaling horizontal et vertical
- Lab 12.3: GitOps avec ArgoCD
- Lab 12.4: Projet final complet
Outils et Technologies
Environnement de Développement
- kubectl: CLI Kubernetes
- minikube / kind: Clusters locaux
- Docker / containerd: Container Runtime
- Helm: Package Manager
- k9s / Lens: Outils de visualisation
Technologies Cloud
- Kubernetes: 1.28+ (dernière version stable)
- Container Runtime: containerd, CRI-O
- CNI: Calico, Flannel, Weave Net
- CSI: Storage drivers
Outils Complémentaires
- Prometheus & Grafana: Monitoring
- Helm: Package management
- ArgoCD / Flux: GitOps
- cert-manager: Gestion de certificats
- Istio / Linkerd: Service Mesh (optionnel)
Compétences Développées
Compétences Techniques
Orchestration de Conteneurs:
- Déploiement et gestion d'applications conteneurisées
- Scaling automatique et manuel
- Gestion du cycle de vie des applications
- Configuration et secrets management
Architecture Cloud-Native:
- Microservices et architecture distribuée
- Service discovery et load balancing
- Stockage persistant et stateful applications
- Networking et sécurité réseau
DevOps et Production:
- CI/CD avec Kubernetes
- Monitoring et observabilité
- Troubleshooting et debugging
- Best practices production
Compétences Professionnelles
- Compréhension de l'écosystème cloud-native
- Déploiement d'applications en production
- Résolution de problèmes complexes
- Collaboration avec les équipes DevOps/SRE
Évaluations
Travaux Pratiques (50%)
- TP1: Déploiement d'application multi-tiers (15%)
- TP2: Configuration complète avec monitoring (20%)
- TP3: Projet GitOps et production (15%)
Laboratoires (30%)
- Labs hebdomadaires (25%)
- Participation et engagement (5%)
Projet Final (20%)
- Application complète déployée sur Kubernetes (15%)
- Documentation et présentation (5%)
Total: 100%
Prérequis
Connaissances Préalables
- Concepts de conteneurisation (Docker)
- Linux et ligne de commande
- Concepts réseau de base
- YAML/JSON (syntaxe de base)
Matériel Requis
- Ordinateur avec minimum 8 GB RAM (16 GB recommandé)
- 50 GB d'espace disque libre
- Connexion Internet stable
- Processeur 64-bit avec virtualisation activée
Logiciels à Installer
- Docker Desktop ou Docker Engine
- kubectl (CLI Kubernetes)
- minikube ou kind (cluster local)
- Helm (package manager)
- Un IDE ou éditeur de texte (VS Code recommandé)
Ressources du Cours
Documentation Officielle
Livres Recommandés
- "Kubernetes: Up and Running" - Kelsey Hightower
- "The Kubernetes Book" - Nigel Poulton
- "Kubernetes in Action" - Marko Lukša
Communauté
Progression du Cours
[✅ COMPLET] MODULE 1 - Introduction à Kubernetes
[✅ COMPLET] MODULE 2 - Architecture et Composants
[✅ COMPLET] MODULE 3 - Pods et Déploiements
[✅ COMPLET] MODULE 4 - Services et Networking
[✅ COMPLET] MODULE 5 - Configuration et Secrets
[✅ COMPLET] MODULE 6 - Stockage et Volumes
[✅ COMPLET] MODULE 7 - Workloads Avancés
[✅ COMPLET] MODULE 8 - Ingress et Load Balancing
[✅ COMPLET] MODULE 9 - Sécurité et RBAC
[✅ COMPLET] MODULE 10 - Helm et Package Management
[✅ COMPLET] MODULE 11 - Monitoring et Observabilité
[✅ COMPLET] MODULE 12 - Déploiement en Production
Commencez Maintenant!
Explorez les modules dans le menu latéral et commencez votre apprentissage de Kubernetes!
Bon cours et bon apprentissage!
Dernière mise à jour: Décembre 2024