Un peu de YAML et 300 lignes de Python pour mieux comprendre et enrichir les Controllers de Kubernetes !
Sous prétexte d’améliorer la robustesse des Services rendus par un cluster Kubernetes, nous allons montrer, étape par étape, comment créer un Custom Controller qui va gérer un nouveau type de ressources, qu’on nommera les CriticalServices.
Tout d’abord, il s’agira d’écrire une application capable d’invoquer l’API server de Kubernetes. Cette application sera ensuite embarquée dans un POD configurable via une ConfigMap.
Pour finir, nous montrerons comment configurer dynamiquement ce Custom Controller en créant nos propres Custom Resources ! Vous verrez que l’objectif est moins complexe qu’il n’y paraît !
Le code Python présenté dans cet article a été testé avec Python 3.7 et 3.8. Les sources sont disponibles sur GitHub [1].
1. Kubernetes, POD et Services
1.1 Petit rappel
Parmi tous les types d’objets gérés par Kubernetes, intéressons-nous aux POD et aux Services : si un POD permet d’encapsuler un ou plusieurs Containers,...
