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é
| Version | 3.5.35 |
| Usage | installer et configurer |
| Couche | infrastructure (présentée à part) |
| Catégorie | Plateformes de données |
| Méthodes d'installation | binary, podman |
| Connexion externe | non |
| Réservé au bac à sable | non |
Licence
| Identifiant SPDX | Apache-2.0 |
| Politique de licence | licence socle (MIT ou Apache-2.0) |
| Exception de licence | - |
| Composant de la plateforme | etcd |
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.
| Type | Paquet | Version | Licence | Détails |
|---|---|---|---|---|
| image de conteneur | quay.io/coreos/etcd | v3.5.35 | Apache-2.0 | clé d'image etcd, utilisée par etcd, condensé sha256:60eea0773022eb2c38b73091e93d6784e0663212e6c4b98faf5547e99058e35d |
| archive binaire | etcd-v3.5.35-linux-amd64.tar.gz | 3.5.35 | Apache-2.0 | https://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éthode | Systèmes d'exploitation | Architectures |
|---|---|---|
binary | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64 (architecture des artefacts du descripteur) |
podman | famille 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
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|---|---|---|
etcd | client | 2379/tcp | oui |
etcd | peer | 2380/tcp | oui |
etcd | metrics | 2381/tcp | oui |
Services et connexions nécessaires
Ce service n'a aucune dépendance.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|---|---|
binary | oui | les 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
| Composant | Type | Méthodes d'installation | Ports |
|---|---|---|---|
Membre etcd (etcd) | maître | binary, podman | 2379/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 :
| Composant | Placement |
|---|---|
etcd | min 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 :
| Composant | Placement |
|---|---|
etcd | min 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.
-
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.
-
Choisissez le service. À l'étape Service, sélectionnez etcd. La carte affiche la licence
Apache-2.0. Choisissez la Méthode parmibinary,podman(par défautbinary). -
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. -
Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.
-
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.
-
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.
-
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é
| Cluster | natif (native) |
| Haute disponibilité | natif (native) |
| Bascule | natif (native) |
| Réplication | natif (native) |
| Quorum | Raft (raft) |
| Découverte | statique (static) |
| Point d'entrée | découverte par le client (client-discovery) |
| Documentation officielle | https://etcd.io/docs/v3.5/op-guide/clustering/ |
| Paramètre TLS entre pairs | tls_enabled |
| Commande d'état du cluster | endpoint_status |
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|---|---|---|---|---|
standalone | autonome (standalone) | unique (single) | - | 1 | Un membre, sans tolérance aux pannes. |
cluster | cluster (cluster) | actif-actif (active-active) | etcd | 3 | 3, 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ètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Port client (client_port) | port | 2379 | - | non | non | non | Port de l'API client. |
Port des pairs (peer_port) | port | 2380 | - | non | non | non | Port du trafic Raft entre membres. |
Port des métriques (metrics_port) | port | 2381 | - | non | non | non | Port de /metrics et /health sans authentification client. |
Stockage
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
Quota du stockage (quota_backend_mb) | int | 2048 | min 256, max 8192, MB | non | non | non | Taille maximale de la base avant alarme. |
Rétention avant compactage (auto_compaction_retention) | string | 1h | - | non | non | non | Historique conservé avant le compactage automatique. |
Sécurité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|---|---|---|---|---|---|---|
TLS (tls_enabled) | bool | false | - | non | non | non | Chiffrer le trafic client et pair avec des certificats de l'autorité de la console. |
Jeton du cluster (cluster_token) | string | navin-etcd | ^[a-z0-9-]{3,64}$ | non | non | non | Jeton initial du cluster, unique par cluster etcd. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|---|---|---|---|---|---|---|---|
client | http | etcd | 2379 (client_port) | - | tls_enabled | - | - | - |
Commandes
| Commande | Composant | Cible | Description |
|---|---|---|---|
Lister les membres (member_list) | etcd | premier hôte | Liste les membres du cluster etcd. |
État des points de terminaison (endpoint_status) | etcd | premier hôte | Affiche le leader, l'index Raft et la taille de la base de chaque membre. |
Prendre un instantané (snapshot) | etcd | premier hôte | Enregistre un instantané de l'espace de clés sous le répertoire de données. |
Défragmenter (defragment) | etcd | tous les hôtes | Libère l'espace libre de la base de chaque membre. |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|---|---|
etcd | HTTP http://{{ host.ip or '127.0.0.1' }}:{{ config.metrics_port }}/health | Attendu 200 ; 60 tentatives |
Disponibilité (contrôle du service)
| Contrôle | Détails |
|---|---|
HTTP http://{{ host.ip or '127.0.0.1' }}:{{ config.metrics_port }}/health | Attendu 200 |
Test fonctionnel
Écrit une clé, la relit avec etcdctl et la supprime. (etcd: put, get, delete)
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|---|---|---|---|
memory | memory_mb {"min": 1024} | au moins 1024 Mo de mémoire | bloquant | tous les composants |
time_sync | time_sync {} | une horloge synchronisée | bloquant | tous les composants |
client_port_free | port_free {"param": "client_port"} | port 2379 libre sur l'hôte | bloquant | tous 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.
| Format | etcd-snapshot |
| Composant | etcd |
| Fichiers | {{ backup.dir }}/etcd.db |
| Test de restauration | oui |
| Instances arrêtées pendant la restauration | oui |
Mise à niveau
| Prise en charge depuis | 3.5.21 |
| Avec état | oui |
| Sauvegarde avant la mise à niveau | oui |
| Retour arrière | oui |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Documentation amont
- Site : https://etcd.io
- Sources : https://github.com/etcd-io/etcd
- Haute disponibilité : https://etcd.io/docs/v3.5/op-guide/clustering/