Les opérateurs Kubernetes
Objectifs du chapitre et prérequis
Ce chapitre est une introduction au mécanisme d’opérateurs. Dans un premier temps, vous reviendrez sur l’opérateur Prometheus puis vous déploierez un nouvel opérateur permettant de gérer des bases de données MySQL.
Afin de bien comprendre l’intérêt de ce chapitre, vous devrez avoir abordé - même de manière superficielle - les chapitres Hébergement d’application en cluster et Mise en place d’une réplication entre pods (consacrés à la mise en place de base de données MariaDB) ainsi que le chapitre Surveillance à l’aide de Prometheus sur la mise en place de Prometheus.
Utilisation des opérateurs
1. Présentation du principe
Un opérateur est une méthode de déploiement et de gestion de ressources applicatives dans Kubernetes. L’intérêt d’un opérateur est de prendre en charge les aspects bas niveau liés à l’utilisation d’un produit comme par exemple :
-
l’affectation d’espace disque,
-
la mise en place de synchronisation inter-pods,
-
la configuration d’un cluster.
Par la suite, une base MySQL sera déployée à l’aide d’un opérateur spécifique afin d’illustrer la simplicité de mise en œuvre par rapport à ce qui a été vu dans les chapitres Hébergement d’application en cluster et Mise en place d’une réplication entre pods (consacrés au déploiement d’une base de données MariaDB).
Le choix de MySQL par rapport à MariaDB vient du fait qu’il n’y a pas à l’heure actuelle d’opérateur open source qui prenne en charge cette dernière.
2. L’opérateur de Prometheus
a. Retour sur le chart prometheus-operator
Vu dans le chapitre Surveillance à l’aide de Prometheus, le chart Helm prometheus-community/kube-prometheus-stack définit de nouveaux types de ressources :
-
Le type Prometheus (prometheuses.monitoring.coreos.com).
-
Le type PrometheusRule (prometheusrules.monitoring.coreos.com).
-
Le type ServiceMonitor (servicemonitors.monitoring.coreos.com).
-
Le type PodMonitor (podmonitors.monitoring.coreos.com).
-
Le type AlertManager (alertmanagers.monitoring.coreos.com).
-
Le type AlertManagerConfig (alertmanagersconfigs.monitoring.coreos.com).
-
Le type Probe (probes.monitoring.coreos.com).
-
Le type ThanosRuler (thanosrules.monitoring.coreos.com).
L’avantage de ce type d’opérateur est qu’il devient ainsi possible de créer des ressources au niveau du cluster Kubernetes sans avoir à se préoccuper des détails d’implémentation tout en réduisant le nombre d’éléments à déclarer.
b. Structure d’un objet Prometheus
Afin de mieux comprendre les implications de ce mécanisme, récupérez la liste des instances Prometheus dans l’espace de nom monitoring :
$ kubectl -n monitoring get prometheus...