Présentation
etcd (prononcer êt-si-di) est un magasin de données clé-valeur Open Source cohérent et distribué, qui stocke la configuration de systèmes ou clusters de machines distribués, coordonne leur planification et assure la découverte des services. etcd facilite et sécurise les mises à jour automatiques, coordonne la planification des tâches affectées aux hôtes et aide à la mise en place d'un réseau pour les conteneurs.
etcd est un élément essentiel de nombreux projets. Il s'agit surtout du magasin de données principal de Kubernetes, le système standard de choix pour l'orchestration des conteneurs. Grâce à etcd, les applications cloud-native sont davantage disponibles et restent fonctionnelles même en cas de défaillance d'un serveur. Les applications lisent et écrivent des données dans etcd. Ce magasin distribue ensuite les données de configuration afin d'assurer la redondance et la résilience de la configuration des nœuds.
Kubernetes et etcd
En tant que magasin de données principal de Kubernetes, etcd stocke et réplique tous les états des clusters Kubernetes. Comme il s'agit d'un composant essentiel d'un cluster Kubernetes, il est primordial qu'etcd adopte une approche fiable en ce qui concerne la configuration et la gestion du cluster.
etcd est un système distribué basé sur un consensus ; la configuration du cluster dans etcd peut donc s'avérer compliquée. L'amorçage, le maintien du quorum, la reconfiguration de l'appartenance au cluster, la création des sauvegardes, la gestion de la récupération après sinistre ainsi que la surveillance des événements critiques sont des tâches complexes et fastidieuses qui exigent un savoir-faire.
Tout ceci est facilité par l'utilisation de l'opérateur etcd.
L'opérateur etcd
L'utilisation d'un opérateur, qui représente des connaissances humaines, facilite l'utilisation d'etcd sur Kubernetes ou sur une plateforme de conteneurs de type Kubernetes comme Red Hat OpenShift. L'opérateur etcd gère etcd au sein de l'Operator Framework, et simplifie la configuration et la gestion du cluster etcd.
Une commande suffit pour installer l'opérateur etcd. Grâce à lui, il est possible de configurer et gérer les éléments complexes d'etcd à l'aide d'une configuration déclarative simple qui permet de créer, configurer et gérer les clusters etcd.
L'opérateur etcd offre les fonctions suivantes :
- Créer/Supprimer : pas besoin de définir des paramètres de configuration complexes pour chaque membre, il suffit de spécifier la taille du cluster.
- Redimensionner : modifiez simplement la taille dans les spécifications, l'opérateur etcd se chargera de déployer, détruire et/ou reconfigurer les membres du cluster.
- Sauvegarder : l'opérateur etcd effectue des sauvegardes de manière automatique et transparente. Il suffit juste de définir une politique de sauvegarde. Par exemple : sauvegarder toutes les 30 minutes et conserver les trois dernières sauvegardes.
- Mettre à niveau : la mise à niveau d'etcd, sans interruption de service, est une tâche essentielle mais difficile. Son exécution via l'opérateur etcd simplifie le processus et évite les erreurs courantes.
Fonctionnement
L'opérateur etcd simule le comportement d'un opérateur humain et réalise ces trois étapes : observation, analyse et action.
- L'opérateur observe l'état actuel du cluster à l'aide de l'API Kubernetes.
- Il analyse ensuite les différences entre l'état actuel et l'état souhaité.
- Enfin, il résout les écarts via l'API Kubernetes et/ou l'API de gestion des clusters etcd.
Quel est l'avantage de la solution Red Hat ?
Créé par l'équipe CoreOS en 2013, etcd est géré par des ingénieurs de Red Hat qui travaillent main dans la main avec des homologues du secteur.
En 2018, Red Hat et l'équipe CoreOS ont confié le projet communautaire etcd à la Cloud Native Computing Foundation (CNCF), une organisation indépendante hébergée par The Linux Foundation dont la mission consiste à encourager l'adoption de systèmes cloud-native. Sachant que tous les clusters Kubernetes reposent sur etcd, le magasin de données revient ainsi à la communauté qui en dépend le plus au sein de la CNCF.
Red Hat a l'intention de continuer à s'investir dans le développement d'etcd, en particulier comme composante de Red Hat OpenShift, notre produit Kubernetes pour les entreprises. Red Hat compte parmi les premières entreprises qui ont soutenu le lancement de la CNCF en 2015. Depuis cette date, Red Hat travaille avec la fondation et la communauté au développement et à la croissance des technologies cloud-native. Grâce à notre histoire et à notre engagement pour les logiciels Open Source et le développement par la communauté, etcd peut apporter davantage à la communauté au sein de la CNCF.