L’environnement

Avec la croissance de l’usage du numérique et l’augmentation des besoins de gestion de données, les équipes informatiques font face à de nouveaux défis :

  • Une multiplication des applications métiers critiques,
  • Une exposition accrue aux risques de sécurité,
  • Une attente forte autour de la résilience et de la rapidité de déploiement,
  • Une attente de haute disponibilité et de scalabilité.

Il devient alors impératif de maintenir le système opérationnel, d’assurer des déploiements rapides, et de garantir un haut niveau de sécurité. L’Infrastructure as Code (IaC) et la conteneurisation répondent à ces besoins. Pour les équipes utilisant Docker, Kubernetes (k8s) est une solution naturelle pour automatiser la gestion, le déploiement et la montée en charge des applications.

Objectifs pédagogiques

À l’issue de la formation, le·la stagiaire sera capable de :

  • Comprendre les problématiques que Kubernetes permet de résoudre.
  • Maîtriser les objets fondamentaux : Pod, ReplicaSet, Deployment, Service, Ingress.
  • Déployer une application de bout en bout (de docker-compose à k8s).
  • Utiliser les outils Helm et Kustomize pour gérer des déploiements.

Public concerné

Développeurs, ingénieurs DevOps, administrateurs systèmes souhaitant monter en compétence sur l’orchestration de conteneurs, chefs de projet techniques ou architectes souhaitant comprendre les enjeux liés à Kubernetes.

Prérequis

  • Avoir des connaissances de base en ligne de commande Linux, ou avoir suivi la formation « Linux débutant ».
  • Avoir une compréhension générale de Docker (build d’image, docker-compose, volumes, réseaux), ou avoir suivi la formation « Docker débutant ».
  • Avoir des notions de réseau, d’API REST et de gestion de configuration.

Un questionnaire ou un entretien de pré-formation est proposé pour valider l’adéquation entre le besoin et la formation.

Programme de la formation

Introduction et fondamentaux

  • Pourquoi Kubernetes ? Retour sur les limites de Docker seul
  • Architecture de Kubernetes (Control Plane, Nodes, etcd, API Server, Scheduler, Controller Manager).
  • Principe des Controllers
  • Namespaces et objets de base : Pod, ReplicaSet, Deployment, Service, Ingress
  • Installation locale (minikube, docker desktop).
  • Installation d’ArgoCD
  • Expérimentation : création de premiers objets, utilisation de kubectl

Première application et Helm

  • Création d’un Helm chart basique
  • Déploiement via ArgoCD
  • Analyse des composants : Deployment, Service, Ingress
  • Expérimentation : mises à jour, débogage
  • Passage d’un docker-compose.yml à un manifest Kubernetes

Gérer la persistance des données

  • Éviter la persistance locale autant que possible
    – Pourquoi ?
    – Configmap & secrets
    – Utilisation d’une base de données extérieure
  • Quand on ne peut pas éviter la persistance : les volumes
    – Objets Kubernetes pour la persistance (Persistant volumes)

Gestion des secrets

  • Problématiques liées à la gestion des secrets :
    – Secrets applicatifs (env vars, fichiers, montages)
    – Accès aux registres privés (tokens, credentials)
  • Déploiement de Secrets Kubernetes classiques “à la main”
  • Introduction aux solutions avancées :
    – Sealed Secrets (Bitnami)
    – External Secrets Operator (ESO)
  • Mise en pratique

Organisation en équipe

  • Travail collectif pour la détermination d’un plan d’action :
    1. Quels objectifs à court et moyen terme ?
    2. Choix d’une architecture initiale pragmatique convenant à l’équipe reposant sur GitOps et ArgoCD :
    – Gestion des rôles et accès utilisateurs
    – Structure des dépôts Git (app of apps, mono-repo, multi-repo)
    – Structure générique des helms charts
    – Nommage des objets, des projets, etc.