Retour aux formations
Cloud
Kubernetes : comprendre, déployer et opérer vos applications conteneurisées
3 jour(s) • 21h
Description
Cette formation couvre l'architecture Kubernetes, les objets fondamentaux, le réseau, le stockage persistant et les premières opérations en production. Helm et le déploiement de cluster avec kubeadm sont inclus. Orientée pratique, elle s'adresse aux profils DevOps mixtes souhaitant prendre en main Kubernetes de manière concrète.
Objectifs pédagogiques
- Comprendre l'architecture de Kubernetes et le rôle de ses composants principaux (control plane, workers, API Server, Scheduler, kubelet)
- Déployer des applications avec les objets fondamentaux de Kubernetes en utilisant des fichiers descriptifs YAML
- Exposer et faire communiquer les applications au sein du cluster et vers l'extérieur
- Gérer la configuration, le cycle de vie et la persistance des données des applications
- Appliquer les premiers gestes d'exploitation : namespaces, quotas, RBAC, autoscaling, maintenance des noeuds
- Utiliser Helm pour déployer des packages Kubernetes et réaliser une mise en oeuvre guidée d'un cluster avec kubeadm
Public concerné
Développeurs, architectes techniques, ingénieurs DevOps et administrateurs système travaillant sur des applications conteneurisées et souhaitant prendre en main Kubernetes de manière opérationnelle
Prérequis
Bonne connaissance de Linux et de la ligne de commande Shell
Notions sur les réseaux TCP/IP
Connaissance des concepts de conteneurisation (Docker ou équivalent) : images, conteneurs, registres
Une expérience concrète de déploiement applicatif est un atout
Déroulé du programme
1
Introduction à Kubernetes
- Présentation de Kubernetes : origine, positionnement dans l'écosystème DevOps, gouvernance CNCF
- Les runtimes de conteneurs supportés : containerd (runtime par défaut depuis Kubernetes 1.24), CRI (Container Runtime Interface) ; place de Docker dans l'écosystème actuel
- Distributions et offres managées : kubeadm (on-premise), GKE, EKS, AKS
- Les outils essentiels : kubectl, k9s, Lens, Helm
2
Architecture de Kubernetes
- Le control plane : API Server, Scheduler, Controller Manager, etcd
- Les worker nodes : Kubelet, kube-proxy, runtime de conteneurs
- La notion de ressources Kubernetes et de versions d'API
- Introduction à kubectl : configuration (kubeconfig), contextes, commandes essentielles
3
Concepts fondamentaux et objets de base
- Le manifest YAML : structure, syntaxe, champs obligatoires (apiVersion, kind, metadata, spec)
- Les pods : unité de base, cycle de vie, conteneurs multiples
- Les sondes (probes) : liveness, readiness, startup -- rôle, configuration, cas de crashloop
- Gestion des ressources dans les pods : requests et limits CPU/mémoire
- Applications stateless vs stateful : différences fondamentales et implications pour le déploiement
4
Déploiements et gestion du cycle de vie
- La ressource Deployment : rôle, structure, relation avec ReplicaSet et pods
- L'importance des labels : sélecteurs, organisation des ressources, relation service/deployment
- Réplication : principes, mise en oeuvre, gestion du nombre de replicas
- Stratégies de mise à jour : RollingUpdate (maxUnavailable, maxSurge) et Recreate
- Rolling update : déclenchement, suivi (kubectl rollout status), rollback
- ConfigMaps et Secrets : créer, référencer dans les pods (variables d'environnement et volumes)
5
Le réseau avec Kubernetes
- La ressource Service : rôle, types et cas d'usage
- ClusterIP : communication interne entre services
- NodePort : exposition sur les noeuds du cluster
- LoadBalancer : intégration avec les load balancers cloud
- ExternalName : redirection DNS
- Service Discovery : résolution DNS interne, communication entre services par nom
- Les Ingress : routage HTTP/HTTPS par règles, notion de contrôleur Ingress (nginx, traefik)
- NetworkPolicy : contrôle du trafic réseau entre pods, principes de segmentation
6
Le stockage avec Kubernetes
- Le modèle de stockage Kubernetes : volumes éphémères vs volumes persistants
- Persistent Volumes (PV) et Persistent Volume Claims (PVC) : provisionnement statique
- StorageClass : provisionnement dynamique des volumes, rôle du provisioner
- Connexion du stockage aux pods : montage de volumes dans les conteneurs
- Types de volumes utiles en pratique : emptyDir, hostPath, configMap/secret comme volumes
7
Applications avec état -- StatefulSet
- La ressource StatefulSet : différences avec Deployment, cas d'usage typiques
- Identité stable des pods : nom prévisible, stockage dédié par pod, ordre de démarrage/arrêt
- Headless Service : DNS par pod, accès direct aux instances
- Déploiement d'une application avec état sur Kubernetes : principes, contraintes, bonnes pratiques
- Etude de cas guidée de bout en bout
8
Kubernetes en exploitation -- premiers gestes de production
- Namespaces : isolation logique des ressources, organisation multi-équipes/multi-projets
- Quotas et LimitRanges : contrôle de la consommation de ressources par namespace
- Autoscaling horizontal (HPA) : principes, configuration basée sur les métriques CPU/mémoire
- Gestion des accès -- RBAC : rôles, clusterroles, bindings, principe du moindre privilège
- Maintenance des noeuds : cordon et drain
- Haute disponibilité, PodDisruptionBudget, stratégies de placement
9
Introduction à Helm
- Qu'est-ce que Helm : gestionnaire de packages Kubernetes, concepts clés (chart, release, dépôt, values)
- Les apports de Helm : templating, gestion des dépendances, versioning des déploiements
- Rechercher des charts : Artifact Hub, dépôts publics et privés
- Cycle de vie d'un package : helm install, upgrade, rollback, uninstall
- Personnalisation via values.yaml
10
Déploiement guidé d'un cluster Kubernetes avec kubeadm
- Préparation des noeuds : prérequis système, installation du runtime containerd
- Initialisation du master node avec kubeadm init : configuration du control plane
- Déploiement du plugin réseau CNI (Calico ou Flannel)
- Ajout des worker nodes : kubeadm join, vérification du cluster
- Création et exposition du dashboard Kubernetes
- Bonnes pratiques de déploiement : sauvegarde etcd, haute disponibilité du control plane
Informations
Durée
3 jour(s)
21h
Tarif
Sur demande