Premiers pas avec Kubernetes
Jusqu'ici, un conteneur tournait parce que vous l'aviez lancé, sur une machine que vous aviez choisie. Kubernetes change la question qu'on se pose : on ne dit plus « lance ce conteneur ici », on décrit ce qu'on veut obtenir (trois copies de l'API, joignables sous tel nom, avec telle quantité de mémoire) et le cluster se charge d'y arriver, puis d'y rester quand une machine tombe ou qu'un programme plante.
Cette partie apprend à se servir de Kubernetes au quotidien, sur le cluster minikube installé au chapitre 0.2. Chaque objet y est introduit par le problème qu'il résout, manipulé, cassé, puis réparé. Le fonctionnement interne des composants (l'API server, etcd, le scheduler, le réseau des Pods) viendra à la partie V ; ici, on en voit assez pour comprendre ce qui se passe et savoir où regarder quand ça ne marche pas.
| Chapitre | Ce que vous y apprenez |
|---|---|
| 15. Pourquoi un orchestrateur | de Borg à Kubernetes, l'état désiré, la réconciliation, les composants d'un cluster |
| 16. minikube et kubectl | pilotes, profils, addons, kubeconfig et contextes, explain, -o yaml |
| 17. Le Pod | cycle de vie, conteneurs multiples, init containers, sidecars, redémarrages |
| 18. Décrire plutôt qu'ordonner | YAML, apply, labels et sélecteurs, annotations, namespaces |
| 19. ReplicaSet et Deployment | mise à l'échelle, mise à jour progressive, retour arrière |
| 20. Les Services | ClusterIP, NodePort, LoadBalancer, headless, le DNS du cluster |
| 21. Configurer une application | ConfigMap, Secret, variables et fichiers montés |
| 22. La santé des Pods | probes, arrêt propre, preStop |
| 23. Les ressources | requests et limits, classes QoS, éviction, quotas |
| 24. TP : Colis sur minikube | l'application complète, depuis le registre local |
| Défi III | réparer un déploiement cassé de Colis |
Il vous faut le cluster minikube du chapitre 0.2, kubectl, et pour le chapitre 24, le registre local du chapitre 14 avec l'image colis/api:2.0 du défi II.