Kubernetes 000 – Preambule : pourquoi apprendre Kubernetes ?
Ce premier episode pose la question la plus importante avant de lancer une formation Kubernetes: pourquoi utiliser un orchestrateur de conteneurs, et quel probleme...
Formation
Formation Kubernetes : pods, déploiements, réseau, stockage et production.
55 épisodes disponibles, classés dans l’ordre pédagogique.
Ce premier episode pose la question la plus importante avant de lancer une formation Kubernetes: pourquoi utiliser un orchestrateur de conteneurs, et quel probleme...
Cet episode replace Kubernetes dans son contexte: l'arrivee des conteneurs, la montee des architectures distribuees et le besoin d'un orchestrateur standardise.
Kubernetes peut etre manipule avec des commandes imperatives ou avec des manifests declaratifs. Cet episode explique pourquoi le declaratif devient rapidement le modele central.
Cet episode decompose l'architecture Kubernetes: API Server, etcd, scheduler, controleurs, kubelet et noeuds de travail.
Ce chapitre suit le chemin d'un pod depuis son enregistrement dans l'API Kubernetes jusqu'a l'execution du conteneur sur un noeud.
Le Pod est l'unite de base de Kubernetes. Cet article explique ce qu'il contient, pourquoi il existe et comment le manipuler sans le confondre...
Pour apprendre Kubernetes, il faut un cluster. Cet episode introduit K0s comme option legere pour monter un environnement de pratique.
L'API Server est la porte d'entree du cluster. Cet episode explique pourquoi l'authentification et les autorisations sont centrales dans Kubernetes.
`kubectl` est le client principal de Kubernetes, mais il reste un client HTTP vers l'API. Cet episode montre le lien entre commandes, configuration et...
Cet episode passe a la pratique avec les premieres commandes pour creer, observer et supprimer un pod Kubernetes.
Apres les commandes imperatives, cet episode passe aux manifests et aux formats de sortie de `kubectl` pour mieux comprendre les objets Kubernetes.
Un pod peut contenir plusieurs conteneurs. Cet episode explique les cas d'usage classiques: sidecar, adapter et ambassador.
Les status de pods racontent ce qui se passe vraiment dans Kubernetes. Cet episode apprend a lire `Running`, `Pending`, `Completed`, `CrashLoopBackOff` et les evenements...
Le ReplicaSet introduit la notion de controleur de pods: maintenir un nombre de replicas attendu, meme quand des pods disparaissent.
Les contextes `kubectl` permettent de choisir rapidement le cluster, l'utilisateur et le namespace cible. Cet episode explique comment eviter les erreurs de cluster.
Quelques outils et habitudes rendent `kubectl` beaucoup plus confortable: alias, completion, kubectx, kubens, kube-ps1 et k9s.
Le Deployment est l'objet de base pour executer une application stateless dans Kubernetes avec replicas, rollout et controle continu.
Les rollouts permettent de mettre a jour un Deployment, suivre sa progression, revenir en arriere et choisir une strategie de remplacement.
Le Service fournit une adresse stable pour joindre des pods dont les noms, IP et cycles de vie changent.
`kubectl exec` et `kubectl run` sont deux reflexes de debug pour inspecter un conteneur ou lancer un pod temporaire dans le cluster.
ClusterIP est le type de Service par defaut. Il fournit une adresse interne stable pour joindre un ensemble de pods.
Apres ClusterIP, Kubernetes propose d'autres types de Services pour exposer ou abstraire des applications selon le contexte.
Derriere un Service Kubernetes, kube-proxy programme le routage local pour diriger le trafic vers les bons pods.
Dockercoin sert de fil rouge pour transformer une application Docker Compose en objets Kubernetes.
Le TP Dockercoin passe a la mise en place concrete des Deployments et Services pour faire communiquer les composants.
Labels et annotations sont des metadonnees essentielles: les labels servent a selectionner, les annotations a enrichir.
ConfigMap et Secret permettent de separer la configuration de l'image conteneur, via variables d'environnement ou fichiers montes.
Le TP Dockercoin ajoute la configuration Kubernetes avec ConfigMaps et consolide les Services internes.
Les volumes Kubernetes permettent de partager ou persister des fichiers au-dela du filesystem d'un conteneur. `emptyDir` est le premier cas a comprendre.
`hostPath` monte un chemin du noeud dans un pod. C'est puissant pour les labs et certains agents systeme, mais dangereux si mal utilise.
NFS permet de monter un stockage reseau dans des pods, ce qui decouple les donnees du noeud local.
PV, PVC et StorageClass separent l'application, la demande de stockage et la maniere de fournir ce stockage.
Cette demo met en pratique PV et PVC avec des backends simples comme hostPath et NFS.
Un provisioner dynamique NFS permet de creer automatiquement des volumes quand les applications creent des PVC.
Le TP Wordpress met en pratique les volumes persistants avec une application concrete composee de Wordpress et d'une base de donnees.
Correction du TP Wordpress avec volumes persistants: separer le stockage, les secrets, les services et les deployments pour obtenir une application reinstallable proprement.
Mise en place d'un cluster Kubernetes multi-noeuds avec k0s et Vagrant pour disposer d'un lab reproductible sur une machine locale.
Decouverte des affinites Kubernetes en mode required: imposer au scheduler des contraintes de placement sur les noeuds ou par rapport a d'autres pods.
Apres les contraintes obligatoires, cet episode explore les preferences de placement et la repartition avec topology spread constraints.
Utiliser `podAntiAffinity` pour eviter que des pods similaires soient places sur le meme noeud ou dans le meme domaine topologique.
Comprendre le lien entre volumes persistants locaux, `nodeAffinity` et scheduling des pods qui consomment ces volumes.
Les StatefulSets gerent des applications avec identite stable, ordre de demarrage et volumes persistants associes a chaque replica.
Un DaemonSet garantit qu'un pod tourne sur chaque noeud cible, cas typique pour agents de monitoring, logs ou reseau.
Introduction a kubeadm, l'outil officiel pour initialiser un cluster Kubernetes en gardant la main sur les composants et le systeme.
Comprendre le role de containerd dans un cluster kubeadm: runtime de conteneurs, interface CRI et configuration systeme.
Initialiser le premier noeud control plane avec kubeadm, configurer kubectl et comprendre les objets crees par l'installation.
Ajouter des workers et des control planes supplementaires a un cluster kubeadm, en distinguant les commandes et les prerequis.
Automatiser l'installation d'un cluster kubeadm avec Vagrant pour obtenir un lab reproductible et rapide a recreer.
Mettre un endpoint HAProxy devant plusieurs API Servers kubeadm pour preparer un control plane hautement disponible.
Completer HAProxy avec Keepalived pour fournir une IP virtuelle redondante devant l'API Kubernetes.
Retrouvez toutes les formations classées par domaine ou choisissez un parcours guidé.