Kubernetes : déployer et exploiter vos applications

Kubernetes est un cours de niveau avancé de 5 leçons (environ 1 h 34), avec 15 exercices et 15 questions de quiz. Prérequis : Docker et déploiement. Le cours demande un environnement de projet complet, prévu dans une phase ultérieure de la plateforme.

  • Cloud et DevOps
  • Avancé
  • 5 leçons
  • 1 h 34
  • 15 exercices
  • Environnement de projet complet (phase 2)

Le cours en bref

Ce cours prend le relais de Docker : vos images sont publiées, il s'agit maintenant de les faire tourner de façon fiable sur un cluster. Vous décrirez vos applications avec des manifestes Deployment, Service et Ingress, injecterez configuration et secrets, réglerez ressources, sondes et autoscaling, puis apprendrez une méthode de dépannage efficace. Les exercices se font sur un cluster local minikube ou kind.

Ce que tu sauras faire

  • Expliquer l'architecture d'un cluster et le principe de l'état désiré
  • Déployer et mettre à jour une application avec un Deployment, puis revenir en arrière
  • Exposer une application avec des Services et un Ingress
  • Injecter configuration et secrets en connaissant les limites de l'objet Secret
  • Régler requests, limits, sondes de santé, HorizontalPodAutoscaler et PodDisruptionBudget
  • Diagnostiquer Pending, ImagePullBackOff, CrashLoopBackOff et OOMKilled avec kubectl

Programme des 5 leçons

    • Comprendre l'architecture d'un cluster Kubernetes (plan de contrôle et nœuds)
    • Décrire une application avec un manifeste Deployment et l'appliquer de façon déclarative
    • Mettre à jour une application par rolling update et revenir en arrière

    Plan de contrôle et nœudsPodsDeployments et ReplicaSetsLabels et sélecteursRolling update et retour arrière

  1. 02

    Services et Ingress : exposer une application

    18 min
    • Rendre un ensemble de pods joignable par un nom stable avec un Service
    • Choisir entre ClusterIP, NodePort et LoadBalancer
    • Publier une application en HTTP(S) par nom de domaine avec un Ingress

    ServicesDNS interneIngress et contrôleur d'IngressTerminaison TLS

  2. 03

    Configuration, secrets et namespaces

    18 min
    • Séparer la configuration de l'image avec des ConfigMaps
    • Gérer les secrets en connaissant les limites de l'objet Secret
    • Isoler des environnements ou des équipes avec des namespaces

    ConfigMapsSecretsNamespacesFichiers montés

  3. 04

    Mise à l'échelle et résilience

    20 min
    • Déclarer requests et limits et en comprendre l'effet
    • Configurer les sondes readiness, liveness et startup
    • Ajuster automatiquement le nombre de répliques avec un HorizontalPodAutoscaler et protéger la disponibilité avec un PodDisruptionBudget

    Requests et limitsSondes de santéHorizontalPodAutoscalerPodDisruptionBudget

  4. 05

    Observabilité et dépannage

    20 min
    • Diagnostiquer méthodiquement un pod en erreur avec get, describe, logs et events
    • Reconnaître et corriger Pending, ImagePullBackOff, CrashLoopBackOff et OOMKilled
    • Situer la surveillance continue : métriques, journaux centralisés, alertes

    Méthode de dépannageJournauxÉvénementsMétriques et surveillance

Projet final

Déployer une application web et son API sur Kubernetes

À partir de deux images publiées (un front et une API, par exemple celles du cours Docker), écrivez les manifestes pour les déployer sur un cluster local dans deux namespaces, staging et production : Deployments, Services, Ingress par nom d'hôte, ConfigMap et Secret, requests et limits, sondes, HorizontalPodAutoscaler et PodDisruptionBudget pour l'API. Démontrez une mise à jour progressive, un retour arrière et le diagnostic d'une panne provoquée.

Livrables

  • Un dossier k8s/ versionné avec une base et des surcouches staging et production (Kustomize) ou un chart Helm
  • La sortie de `kubectl get deploy,svc,ingress,hpa,pdb -n production` montrant tous les objets prêts
  • Un README décrivant le déploiement, la gestion des secrets (sans valeur en clair dans le dépôt) et la procédure de retour arrière
  • Un compte rendu de diagnostic d'une panne provoquée (image inexistante ou variable manquante) avec les commandes utilisées

Critères d'évaluation

  • Les manifestes s'appliquent sans erreur et les Deployments atteignent leur nombre de répliques prêtes
  • Les images sont référencées par un tag immuable et aucun secret n'apparaît en clair dans le dépôt
  • Seul l'Ingress expose l'application ; l'API et les dépendances internes restent en ClusterIP
  • Requests, limits et sondes sont cohérents et le HPA affiche une cible mesurée
  • La mise à jour et le retour arrière sont démontrés sans interruption du service

Questions fréquentes

Faut-il connaître Docker avant ce cours ?

Oui. Le cours part d'images déjà construites et publiées ; savoir écrire un Dockerfile et utiliser un registre (cours B4) est nécessaire.

Ai-je besoin d'un compte cloud pour pratiquer ?

Non. Tous les exercices fonctionnent sur un cluster local créé avec minikube ou kind. Les différences avec un service managé (GKE, EKS, AKS) sont signalées dans les leçons.

Kubernetes est-il indispensable pour déployer une application ?

Non. Pour une application sur un seul serveur, Docker Compose ou une plateforme de conteneurs managée suffit souvent. Kubernetes devient intéressant avec de nombreux services, des besoins de haute disponibilité ou une équipe plateforme.

Le cours aborde-t-il Helm ?

Helm et Kustomize sont présentés comme outils d'organisation des manifestes par environnement. Le cours se concentre sur les objets Kubernetes eux-mêmes, qu'il faut comprendre avant d'utiliser ces outils.

Ce cours, raconté pour ton métier

Dis ce que tu veux savoir faire : « Kubernetes » prend sa place dans ton parcours, avec des exemples de ton secteur. Les notions restent celles du cours.

L'aperçu est gratuit, et les cours se suivent un par un sans payer. Le parcours ne contient que des leçons du catalogue.