Retour aux formations
Développement
Docker et Kubernetes - Parcours combiné : remise à niveau Docker et mise en œuvre Kubernetes
3 jour(s) • 21h
Description
Ce parcours s'adresse à des équipes techniques ayant déjà été exposées à Docker et Kubernetes, mais souhaitant homogénéiser leurs pratiques et sécuriser leur passage vers des usages plus opérationnels. La première journée est consacrée à la remise à niveau Docker (architecture, conteneurs, images, Dockerfile, Docker Compose V2) afin de garantir des fondamentaux solides et homogènes au sein du groupe. Les deux journées suivantes sont dédiées à la mise en œuvre de Kubernetes : architecture du cluster, déploiement et exposition d'applications, exploitation, sécurité, stockage persistant, réseau et industrialisation avec Helm.
Objectifs pédagogiques
- Consolider les bases Docker : architecture, images, conteneurs, volumes et réseau
- Construire des images fiables avec Dockerfile, multi-stage builds et BuildKit
- Orchestrer une application multi-conteneurs avec Docker Compose V2
- Comprendre l'architecture Kubernetes et le rôle des principaux composants
- Déployer, exposer et mettre à jour des applications conteneurisées avec Kubernetes
- Diagnostiquer les erreurs courantes sur les pods, deployments et services
- Gérer la configuration, les secrets et le stockage persistant
- Contrôler les accès avec RBAC et segmenter les flux avec les Network Policies
- Comprendre le rôle d'Ingress, les limites de l'API Ingress et l'ouverture vers Gateway API
- Découvrir l'industrialisation des déploiements avec Helm
Public concerné
Développeurs back, front et fullstack
Architectes techniques et logiciels
Ingénieurs de production
Administrateurs systèmes
SRE et DevOps engineers
Tech leads pilotant des équipes utilisant la conteneurisation
Prérequis
Connaissances de base d'un environnement Linux/Unix (navigation terminal, commandes de base)
Notions sur les réseaux TCP/IP
Première expérience avec Docker, même limitée
Pratique du développement ou de l'administration système recommandée
Familiarité avec la ligne de commande
Déroulé du programme
1
Jour 1 / Remise à niveau Docker (7h)
7h
2
Module 1 / Positionnement et architecture de Docker (1h)
1h
3
• Conteneurisation vs virtualisation : avantages, limites, complémentarité
4
• Docker dans l'écosystème DevOps : Infrastructure as Code, CI/CD, microservices
5
• Architecture Docker : daemon, client, API, composants fondamentaux
6
• Docker Engine (Linux) et Docker Desktop (Windows/macOS) : différences et cas d'usage
7
• Syntaxe actuelle : docker compose sans tiret (Compose V1 supprimée depuis juin 2023)
8
• Vocabulaire de référence : image, conteneur, registry, daemon, Dockerfile, Compose
9
Module 2 / Conteneurs, images et registres (2h)
2h
10
• Cycle de vie d'une image : couches, cache, historique
11
• Docker Hub et registres privés : pull, push, nommage des images
12
• Instanciation d'un conteneur : options du run, modes interactif/détaché, variables d'environnement, limites de ressources
13
• Cycle de vie d'un conteneur : start, stop, restart, rm
14
• Gestion au quotidien : exec, logs, inspect, stats
15
• Approfondi en TP : déploiement et administration d'une application web dans un conteneur
16
Module 3 / Dockerfile et bonnes pratiques (1h30)
1h
17
• Instructions fondamentales : FROM, RUN, CMD, ENTRYPOINT, COPY, ADD, EXPOSE, ENV, ARG
18
• Multi-stage builds : réduction de la taille des images, images distroless et alpine
19
• Bonnes pratiques : minimisation des couches, utilisateur non-root, .dockerignore
20
• BuildKit : builder par défaut depuis Docker Engine 23, performance et parallélisation du cache
21
• Approfondi en TP : construction d'une image personnalisée avec multi-stage build
22
Module 4 / Volumes, réseau et Docker Compose V2 (2h)
2h
23
• Volumes : bind mount, volumes nommés, tmpfs, identification et nettoyage
24
• Modèle réseau Docker : bridge, host, none, publication de ports, DNS interne
25
• Docker Compose V2 : syntaxe docker compose, fichier compose.yaml, services, réseaux, volumes
26
• Commandes essentielles : up, down, ps, logs, exec, build
27
• Dépendances entre services : depends_on avec condition service_healthy
28
• Approfondi en TP: stack multi-conteneurs avec persistance et réseau personnalisé
29
Module 5 / Ouverture sur l'orchestration (30 min)
30
• Limites de Docker Compose en production multi-hôte
31
• Panorama de l'orchestration : Docker Swarm en évocation, transition vers Kubernetes
32
• Panorama sécurité conteneurs : surface d'attaque, scan de vulnérabilités, principes du moindre privilège
33
Jour 2 / Mise en œuvre Kubernetes : fondamentaux et exploitation (7h)
7h
34
Module 6 / Positionnement et architecture de Kubernetes (2h)
2h
35
• De la conteneurisation à l'orchestration : positionnement de Kubernetes dans l'écosystème Cloud Native
36
• Kubernetes et la CNCF : gouvernance, écosystème, distributions (Minikube, kubeadm, K3s, services managés)
37
• Architecture d'un cluster : control plane (API Server, Scheduler, Controller Manager, etcd) et worker nodes (Kubelet, container runtime, Kube-proxy)
38
• Objets fondamentaux : Pod, ReplicaSet, Deployment, Service, Namespace
39
• Accéder au cluster : kubectl (CLI), Dashboard (GUI), API REST
40
Module 7 / Déploiement et exposition d'applications (3h)
3h
41
• Créer un déploiement manuellement et via des fichiers descriptifs YAML
42
• Syntaxe YAML : structure, indentation, bonnes pratiques
43
• Scalabilité d'un déploiement : replicas, scaling manuel
44
• Stratégies de mise à jour sans interruption : rolling update, rollback
45
• Types de services : ClusterIP, NodePort, LoadBalancer
46
• Exposer une application à l'extérieur du cluster
47
• Approfondi en TP : déploiement complet d'une application avec exposition
48
Module 8 / Exploitation et diagnostic des workloads (2h)
2h
49
• Labels, selectors et annotations : organiser et filtrer ses ressources
50
• ConfigMaps et Secrets : externaliser la configuration, manipuler les données sensibles et comprendre les limites natives des Secrets Kubernetes
51
• Liveness, readiness et startup probes : garantir la disponibilité des applications
52
• Troubleshooting : méthodologie de diagnostic d'un pod ou d'un déploiement en erreur
53
• Mention en ouverture : DaemonSets, affinité et anti-affinité de pods
54
Jour 3 / Stockage, sécurité, réseau et industrialisation (7h)
7h
55
Module 9 / Stockage persistant (1h30)
1h
56
• Volumes, Persistent Volumes (PV) et Persistent Volume Claims (PVC) : concepts et cycle de vie
57
• Classes de stockage (StorageClass) : provisionnement dynamique
58
• Stratégies de rétention et de recyclage des volumes
59
• Objets stateful vs stateless : quand utiliser un StatefulSet
60
Module 10 / Sécurité du cluster (2h)
2h
61
• RBAC (Role-Based Access Control) : Roles, ClusterRoles, RoleBindings, ClusterRoleBindings
62
• Créer des politiques d'accès granulaires pour différents profils (développeur, opérateur, admin)
63
• ServiceAccounts : identité des pods et principes du moindre privilège
64
• Network Policies : segmenter le trafic entre pods et namespaces, sous réserve d'un CNI compatible
65
• Bonnes pratiques de sécurité : SecurityContext et durcissement des conteneurs
66
Module 11 / Réseau et exposition avancée (1h30)
1h
67
• Modèle réseau de Kubernetes : communication pod-to-pod, pod-to-service, externe
68
• Service Discovery : DNS interne, variables d'environnement
69
• Ingress Controller : principes, routage HTTP/HTTPS, terminaison TLS, limites de l'API Ingress et ouverture vers Gateway API
70
Module 12 / Industrialiser avec Helm (1h30)
1h
71
• Helm : positionnement, architecture (charts, releases, repositories)
72
• Installer et utiliser Helm pour déployer des applications
73
• Structure d'un chart : templates, values, helpers
74
• Personnaliser un déploiement via les fichiers values.yaml
75
• Gérer le cycle de vie des releases : install, upgrade, rollback, uninstall
76
Atelier final de synthèse (30 min)
77
• Mise en perspective des deux briques : Docker pour le packaging, Kubernetes pour l'orchestration
78
• Panorama de la production Kubernetes : ouverture vers l'autoscaling, la haute disponibilité et le monitoring
79
• Focus d'aide à la décision : Kubernetes managé (EKS, AKS, GKE) vs on-premise
80
• Discussion ouverte sur les pratiques des participants
81
• Recommandations personnalisées pour la mise en application
Informations
Durée
3 jour(s)
21h
Tarif
Sur demande