Aller au contenu principal

etcd (etcd)

Base clé valeur distribuée et cohérente pour la coordination, la configuration et l'élection de leader. Membre unique ou cluster impair.

Généré depuis catalog/services/etcd.yaml : ne pas modifier à la main.

Résumé​

Version3.5.35
Usageinstaller et configurer
Coucheinfrastructure (présentée à part)
CatégoriePlateformes de données
Méthodes d'installationbinary, podman
Connexion externenon
Réservé au bac à sablenon

Licence​

Identifiant SPDXApache-2.0
Politique de licencelicence socle (MIT ou Apache-2.0)
Exception de licence-
Composant de la plateformeetcd

Paquets et artefacts​

Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.

TypePaquetVersionLicenceDétails
image de conteneurquay.io/coreos/etcdv3.5.35Apache-2.0clé d'image etcd, utilisée par etcd, condensé sha256:60eea0773022eb2c38b73091e93d6784e0663212e6c4b98faf5547e99058e35d
archive binaireetcd-v3.5.35-linux-amd64.tar.gz3.5.35Apache-2.0https://github.com/etcd-io/etcd/releases/download/v3.5.35/etcd-v3.5.35-linux-amd64.tar.gz, x86_64, somme de contrôle sha256

Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.

Systèmes et architectures pris en charge​

MéthodeSystèmes d'exploitationArchitectures
binaryfamille RHEL (dnf), famille Debian (apt), Arch Linux (pacman)x86_64 (architecture des artefacts du descripteur)
podmanfamille RHEL (dnf), famille Debian (apt), Arch Linux (pacman)x86_64, aarch64 (non restreintes par le descripteur)

Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.

Prérequis​

Hôte​

  • au moins 1024 Mo de mémoire (bloquant, memory).
  • une horloge synchronisée (bloquant, time_sync).

Réseau et ports​

ComposantNom du portPortOuvert dans le pare-feu de l'hôte
etcdclient2379/tcpoui
etcdpeer2380/tcpoui
etcdmetrics2381/tcpoui

Services et connexions nécessaires​

Ce service n'a aucune dépendance.

Méthodes et modes d'installation​

MéthodeDéfautCe que la méthode utilise
binaryouiles archives binaires du descripteur, décompressées dans le répertoire du service
podman-les images de conteneur du descripteur, exécutées par Podman sous systemd

Composants​

ComposantTypeMéthodes d'installationPorts
Membre etcd (etcd)maîtrebinary, podman2379/tcp, 2380/tcp, 2381/tcp

Membre unique (standalone) (par défaut)​

Un seul membre etcd, sans tolérance aux pannes.

Ce que le mode déploie :

ComposantPlacement
etcdmin 1, max 1

Cluster (cluster)​

Un nombre impair de membres (3, 5 ou 7) qui maintient un quorum Raft.

Ce que le mode déploie :

ComposantPlacement
etcdmin 3, max 7, nombre impair, recommandé 3

Installer ce service​

L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.

  1. Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.

  2. Choisissez le service. À l'étape Service, sélectionnez etcd. La carte affiche la licence Apache-2.0. Choisissez la Méthode parmi binary, podman (par défaut binary).

  3. Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : standalone (par défaut), cluster. Chaque mode déploie les composants listés dans Méthodes et modes d'installation.

  4. Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.

  5. Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.

  6. Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.

  7. Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services. Ouvrez le service et choisissez Lancer le test fonctionnel dans la carte Contrôles : Écrit une clé, la relit avec etcdctl et la supprime.

Haute disponibilité​

Clusternatif (native)
Haute disponibiliténatif (native)
Basculenatif (native)
Réplicationnatif (native)
QuorumRaft (raft)
Découvertestatique (static)
Point d'entréedécouverte par le client (client-discovery)
Documentation officiellehttps://etcd.io/docs/v3.5/op-guide/clustering/
Paramètre TLS entre pairstls_enabled
Commande d'état du clusterendpoint_status

Topologie par mode​

ModesNiveau le plus haut du catalogueRépartitionComposant du quorumDomaines de panneDescription
standaloneautonome (standalone)unique (single)-1Un membre, sans tolérance aux pannes.
clustercluster (cluster)actif-actif (active-active)etcd33, 5 ou 7 membres Raft ; le cluster survit à la perte d'une minorité.

Remarques​

  • Chaque membre demande un disque persistant à faible latence : Raft écrit chaque modification sur le disque de la majorité avant de répondre.

Paramètres de configuration​

Réseau​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Port client (client_port)port2379-nonnonnonPort de l'API client.
Port des pairs (peer_port)port2380-nonnonnonPort du trafic Raft entre membres.
Port des métriques (metrics_port)port2381-nonnonnonPort de /metrics et /health sans authentification client.

Stockage​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
Quota du stockage (quota_backend_mb)int2048min 256, max 8192, MBnonnonnonTaille maximale de la base avant alarme.
Rétention avant compactage (auto_compaction_retention)string1h-nonnonnonHistorique conservé avant le compactage automatique.

Sécurité​

ParamètreTypeDéfautValeurs permisesObligatoireSecretRedémarrageDescription
TLS (tls_enabled)boolfalse-nonnonnonChiffrer le trafic client et pair avec des certificats de l'autorité de la console.
Jeton du cluster (cluster_token)stringnavin-etcd^[a-z0-9-]{3,64}$nonnonnonJeton initial du cluster, unique par cluster etcd.

Points d'accès​

Point d'accèsSchémaComposantPortCheminParamètre TLSParamètres de liaisonSecrets de liaisonCommande de provisionnement
clienthttpetcd2379 (client_port)-tls_enabled---

Commandes​

CommandeComposantCibleDescription
Lister les membres (member_list)etcdpremier hôteListe les membres du cluster etcd.
État des points de terminaison (endpoint_status)etcdpremier hôteAffiche le leader, l'index Raft et la taille de la base de chaque membre.
Prendre un instantané (snapshot)etcdpremier hôteEnregistre un instantané de l'espace de clés sous le répertoire de données.
Défragmenter (defragment)etcdtous les hôtesLibère l'espace libre de la base de chaque membre.

Contrôles de santé​

Vivacité (par instance)​

ComposantContrôleDétails
etcdHTTP http://{{ host.ip or '127.0.0.1' }}:{{ config.metrics_port }}/healthAttendu 200 ; 60 tentatives

Disponibilité (contrôle du service)​

ContrôleDétails
HTTP http://{{ host.ip or '127.0.0.1' }}:{{ config.metrics_port }}/healthAttendu 200

Test fonctionnel​

Écrit une clé, la relit avec etcdctl et la supprime. (etcd: put, get, delete)

Contrôles préalables​

ContrôleTypeSignificationSévéritéComposants
memorymemory_mb {"min": 1024}au moins 1024 Mo de mémoirebloquanttous les composants
time_synctime_sync {}une horloge synchroniséebloquanttous les composants
client_port_freeport_free {"param": "client_port"}port 2379 libre sur l'hôtebloquanttous les composants

Sauvegarde et restauration​

Instantané cohérent de l'espace de clés (etcdctl snapshot save) ; la restauration reconstruit le répertoire de données d'un membre unique avec etcdutl.

Formatetcd-snapshot
Composantetcd
Fichiers{{ backup.dir }}/etcd.db
Test de restaurationoui
Instances arrêtées pendant la restaurationoui

Mise à niveau​

Prise en charge depuis3.5.21
Avec étatoui
Sauvegarde avant la mise à niveauoui
Retour arrièreoui

Désinstallation​

Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.

Documentation amont​