1. Contexte
- Rappels sur les conteneurs : Introduction aux conteneurs et leurs avantages (portabilité, isolation).
- Conteneurs sans orchestration : Gestion manuelle des conteneurs sans outils d'orchestration.
- Fonctionnalités d'orchestration : Rôle de l'orchestration pour la scalabilité et l'automatisation.
- Orchestrateurs du marché : Comparaison des principaux orchestrateurs (Kubernetes, Docker Swarm, etc.).
- Kubernetes : Présentation de Kubernetes et de son rôle clé dans la gestion des conteneurs.
- Distributions Kubernetes : Vue d'ensemble des distributions (GKE, EKS, OpenShift, etc.).
2. Architecture et composants
- Architecture : Composants principaux : Control Plane et nœuds workers.
- Control plane : API Server, Scheduler, Controller Manager, etc.
- Les nœuds workers : Rôle des nœuds dans l'exécution des Pods.
3. Premiers pas avec Kubernetes
- Installation avec Minikube : Création d'un cluster local Kubernetes avec Minikube.
- CLI et API : Utilisation de `kubectl` et de l'API.
- Démarrer un conteneur : Déployer un conteneur et l'exposer dans le cluster.
4. Les Pods
- Concept du Pod : Unité de base de Kubernetes, contenant un ou plusieurs conteneurs.
- Descripteurs YAML/JSON : Définition des objets Kubernetes via YAML/JSON.
- Organisation avec labels et namespaces : Utilisation des labels et namespaces pour organiser les Pods.
- Security Context : Sécuriser les Pods avec des politiques de sécurité.
- Init Containers : Tâches préalables à l'exécution du conteneur principal.
- Cycle de vie des Pods : Étapes de la vie d'un Pod (création, exécution, suppression).
- HealthChecks : Vérification de la santé des Pods (liveness, startup).
- Gestion des ressources : Définir des limites de ressources (CPU, mémoire).
5. Droits et comptes de service
- RBAC : Contrôle d'accès basé sur les rôles pour sécuriser les ressources.
- Comptes de service : Gestion des permissions des applications avec des comptes de service.
6. Controllers
- ReplicaSets : Maintenir un nombre fixe de Pods.
- DaemonSets : Exécuter un Pod sur tous les nœuds du cluster.
- Jobs : Exécution de tâches ponctuelles dans le cluster.
7. Services et exposition réseau
- Concept de service : Exposer les Pods via un Service Kubernetes.
- Exposition externe : Accès aux Pods à l'intérieur et à l'extérieur du cluster : NodePort, LoadBalancer, Ingress.
- Sonde readiness : Vérification de la disponibilité des Pods.
- Service headless : Exposer les Pods sans point d'entrée spécifique.
- Port forward : Accès local aux services avec `kubectl port-forward`.
- NetworkPolicies : Sécuriser les communications entre Pods avec des règles réseau.
8. Volumes
- Partage de données entre conteneurs : Partager des volumes dans un Pod.
- Accès au fs d'un nœud : Accéder au système de fichiers local du nœud.
- Persistent Volumes et PVC : Gestion de volumes persistants.
9. Configuration et secrets
- Variables d'environnement : Configurer des variables d'environnement dans les Pods.
- ConfigMaps : Gérer la configuration via ConfigMaps.
- Secrets : Stocker des données sensibles avec Secrets.
10. Stratégies de déploiement
- Déployer une nouvelle version : Mise à jour progressive des Pods avec des Rolling Updates.
- Deployment : Gérer des mises à jour déclaratives avec Deployment.
11. StatefulSets
- Présentation des StatefulSets : Gérer des applications avec état (bases de données, etc.).
12. Autoscaler
- Auto-scaling horizontal : Ajuster le nombre de réplicas en fonction de la charge.
13. Extensibilité
- Admission Controllers : Personnaliser les processus d'admission avec des contrôleurs dynamiques.
- Custom Resource Definitions (CRD) : Ajouter des ressources personnalisées.
- Operator : Automatiser la gestion des applications avec des Operators.
14. Helm & Kustomize
- Helm : Simplifier les déploiements avec des charts Helm.
- Kustomize : Gérer la personnalisation des configurations en fonction des environnements.
15. Conclusion
- Résumé : Récapitulatif des concepts abordés.
- Bonnes pratiques : Conseils pour une utilisation optimale de Kubernetes.
- Sécurité dans Kubernetes : Pratiques de sécurisation des clusters.
- CKAD : Préparation à la certification Kubernetes pour développeurs.
- Kubernetes, et après ? : Prochaines étapes après Kubernetes (observabilité, monitoring, etc.).