Toutes les ressources de Kubernetes peuvent être considérées comme des objects accessibles au travers d'une API et dont l'état est maintenu par un contrôleur. Lorsque vous créez un déploiement par exemple, c'est au contrôleur de s'assurer que l'état que vous désirez est celui présent dans le cluster. Mais Kubernetes n'a qu'un nombre limité d'objets, comme les pods, les déploiements ou les statefulsets. Cependant, Kubernetes nous permet d'étendre cette API en créant de nouveaux objets au travers de ressources personnalisées dont l'état devra être maintenu par un contrôleur dédié. Ces nouveau objets vont par exemple vous permettre de déployer un cluster Kafka ou Elastic dans Kubernetes.
Mais en plus, vous pouvez également implémenter un savoir faire opérationnel dans ces contrôleurs, et leur donner la possibilité d'agir en autonomie en réaction à un évènement, comme la création d'un nouveau cluster Kafka, la perte d'un noeud du cluster, ou une demande de backup. Un contrôleur doté d'une logique opérationnelle est appelé un opérateur. Et il existe différents frameworks pour en faciliter la création.
Dans cet épisode, j'ai le plaisir de recevoir Denis Jannot. Denis est sales engineer pour D2iQ, anciennement connu en tant que Mesosphere, et il nous explique les problématiques des différents frameworks, et pourquoi D2iQ a fait le choix de créer KUDO, un framework destiné à faciliter la création d'opérateurs.
Notes de l'épisode
- Le site de KUDO : https://kudo.dev/
- L'opérateur KUDO sur Github : https://github.com/kudobuilder/kudo
- Les opérateurs développés pour KUDO : https://github.com/kudobuilder/operators
Support the show (https://www.patreon.com/electromonkeys)