Kubernetes
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.
Méthodologie
L’écosystème kubernetes est riche et la grande quantité de notions peut décourager le déploiement effectif.
Cette formation s’appuie sur une pédagogie hybride :
- Apports théoriques ciblés pour construire des bases solides.
- Exercices pratiques guidés pour expérimenter directement les concepts.
- Ateliers collectifs pour favoriser la prise de recul, la réflexion partagée et l’ancrage dans un contexte d’équipe.
Une architecture minimaliste mais réaliste sert de fil conducteur :
Un cluster Kubernetes avec ArgoCD, nginx, cert-manager, external-secrets, des applications décrites en Helm, et GitLab comme socle DevOps.
Cette base permet de :
- Déployer des applications, suivre les logs, versionner.
- Automatiser la mise en place et la mise à jour, gérer automatiquement les certificats.
- Gérer les secrets de manière securisée.
- Mettre en œuvre une chaîne de déploiement continue.
Elle est extensible, et ouvre la voie vers la gestion des volumes, des droits, des politiques réseau, etc.
Objectifs de la formation
- 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.
- Connaître une architecture Kubernetes concrète et fonctionnelle pour pouvoir collectivement décider des directions de l’équipe.
Public cible
- Développeurs ayant une première expérience avec Docker.
- Ingénieurs DevOps débutant sur Kubernetes.
- 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
- Connaissances de base en ligne de commande Linux.
- Compréhension générale de Docker (build d’image, docker-compose, volumes, réseaux).
- Notions de réseau, d’API REST, et de gestion de configuration.
Prérequis technique
- Logiciels : helm, minikube, kubectl, éditeur de code.
- Accès internet avec proxy peu restrictif (accès à dockerhub)
Organisation de la formation
- Formation hybride : apports théoriques, exercices pratiques, ateliers collectifs.
- Durée recommandée : 3 à 5 jours (modulable en fonction du niveau des participants et du format).
Contenu de la formation
Partie 1 : 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.
Partie 2 : 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.
Partie 3 : 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)
Partie 4 : 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.
Partie 5 : Organisation en équipe
Travail collectif pour la détermination d’un plan d’action :
-
Quels objectifs à court et moyen terme ?
-
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.
-
Implémentation de cette structure : stucturation gitlab, documentation, écriture d’un helm chart de référence. “Kubernetisation” de premières applications.
Lien vers les supports de formation : kubernetes.jrobert-orleans.fr