Aller au contenu principal

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