orthographe

This commit is contained in:
Jérémy Lecour 2023-04-23 11:27:49 +02:00 committed by Jérémy Lecour
parent 3896f2da04
commit 099c3dd80a

View file

@ -1,6 +1,7 @@
---
title: Howto etcd
categories: databases
redirect: etcd
...
* Documentation : <https://etcd.io/docs/v3.5/>
@ -11,13 +12,13 @@ categories: databases
# Installation
En Debian 11 on installe le client et / ou le serveur etcd comme ceci :
En Debian 11 on installe le client et/ou le serveur **etcd** comme ceci :
~~~
# apt install etcd-client etcd-server
~~~
Si on doit utilisé etcd via une API en python, comme pour Patroni par exemple, on peux installer ces paquets supplémentaires :
Si on doit utiliser etcd via une API en Python, comme pour Patroni par exemple, on peux installer ces paquets supplémentaires :
~~~
# apt install python3-etcd python3-psycopg2
@ -25,28 +26,26 @@ Si on doit utilisé etcd via une API en python, comme pour Patroni par exemple,
# Configuration
etcd écoute, par défaut, sur deux port bien distinct, le port `2379` et le port `2380`.
etcd écoute, par défaut, sur deux port bien distincts: `2379` et `2380`.
Le port `2379` sert pour la communication pour les requêtes des clients, et le port `2380` sert pour la communication des nœuds.
Voici la définition des variables d'environnement que nous utilisons le plus souvent :
* `ETCD_NAME` : défini le nom du nœud
* `ETCD_DATA_DIR` : répertoire du datadir des WAL etcd
* `ETCD_LOG_OUTPUTS` : défini la sortie des logs, peux être défini sur `stdout` ou `stderr`, ça skippe la remonté des logs dans journald.
* `ETCD_LISTEN_PEER_URLS` : défini la liste des URLs sur laquelle écoute le trafic des pairs. Seule une adresse IP est valide, si on indique `0.0.0.0:PORT` cela écoute sur toutes les interfaces réseau de la machine.
Un nom de domaine n'est pas valide pour l'écoute.
* `ETCD_LISTEN_CLIENT_URLS` : défini la liste des URLs sur laquelle écoute le trafic des clients. Seule une adresse IP est valide, si on indique `0.0.0.0:PORT` cela écoute sur toutes les interfaces réseau de la machine.
Un nom de domaine n'est pas valide pour l'écoute.
* `ETCD_INITIAL_ADVERTISE_PEER_URLS` : liste des URLs homologue de ce nœud a annoncer au reste du cluster. Ces adresses sont utilisées pour communiquer les données etcd autour du cluster, et elle peuvent contenir des noms de domaine.
* `ETCD_NAME` : nom du nœud
* `ETCD_DATA_DIR` : datadir des WAL etcd
* `ETCD_LOG_OUTPUTS` : sortie des logs sur `stdout` ou `stderr`, ça annule la remonté des logs dans journald.
* `ETCD_LISTEN_PEER_URLS` : liste des URLs sur laquelle écoute le trafic des pairs. Seule une adresse IP est valide, si on indique `0.0.0.0:PORT` cela écoute sur toutes les interfaces réseau de la machine. Un nom de domaine n'est pas valide pour l'écoute.
* `ETCD_LISTEN_CLIENT_URLS` : liste des URLs sur laquelle écoute le trafic des clients. Seule une adresse IP est valide, si on indique `0.0.0.0:PORT` cela écoute sur toutes les interfaces réseau de la machine. Un nom de domaine n'est pas valide pour l'écoute.
* `ETCD_INITIAL_ADVERTISE_PEER_URLS` : liste des URLs homologues de ce nœud à annoncer au reste du cluster. Ces adresses sont utilisées pour communiquer les données etcd autour du cluster, et elle peuvent contenir des noms de domaine.
* `ETCD_INITIAL_CLUSTER` : configuration initiale du cluster pour l'amorçage.
* `ETCD_ADVERTISE_CLIENT_URLS` : liste des URL client de ce membre à annoncer au reste du cluster, peux contenir des noms de domaine.
* `ETCD_INITIAL_CLUSTER_TOKEN` : défini le token d'initialisation pour l'amorçage du cluster etcd.
* `ETCD_INITIAL_CLUSTER_STATE` : état initial du cluster, peut être défini sur `new` ou `existing`. Si cette option est définie sur `existing`, etcd tentera de rejoindre le cluster existant. Si la mauvaise valeur est définie, etcd tentera de démarrer mais échouera en toute sécurité.
## Etcd en stand alone sur un seul nœud
## Etcd en _stand alone_ sur un seul nœud
Si on veux utilisé etcd sur un seul serveur, et pas en mode cluster, on utilisera la configuration suivante dans `/etc/default/etcd` :
Si on veux utiliser etcd sur un seul serveur, et pas en mode cluster, on peut utiliser la configuration suivante dans `/etc/default/etcd` :
~~~
ETCD_NAME="etcd-foo"
@ -66,7 +65,7 @@ Dans cet exemple l'ip `192.0.1.2` est l'ip locale de la machine, on le fait éco
## Etcd en mode cluster
Si on veux utilisé etcd en mode cluster, on utilisera la configuration suivante :
Si on veux utiliser etcd en mode cluster, on peut utiliser la configuration suivante :
~~~
ETCD_NAME="etcd-foo1"
@ -95,7 +94,7 @@ On met en place cette configuration sur tous les nœuds, en modifiant les variab
## Interagir en CLI avec l'API de etcd
On peux utilisé la commande `etcdctl` pour intéragir avec l'API de etcd, il faut bien exporté la variable `ETCDCTL_API` en fonction de la version de etcd qu'on utilise, soit v2 ou v3.
On peux utiliser la commande `etcdctl` pour interagir avec l'API de etcd, il faut bien exporter la variable `ETCDCTL_API` en fonction de la version de etcd qu'on utilise, soit v2 ou v3.
En Debian 11 on utilise la v3, donc on exporte la variable comme ceci :
@ -105,7 +104,7 @@ En Debian 11 on utilise la v3, donc on exporte la variable comme ceci :
Voici quelques exemples d'utilisation :
* Listé les membres du cluster et connaitre l'état de chaque nœud :
* Lister les membres du cluster et connaitre l'état de chaque nœud :
~~~
# etcdctl --endpoints=http://127.0.0.1:2379 member list
@ -124,7 +123,7 @@ API version: 3.3
## Sauvegarde
Pour faire une sauvegarde de etcd dans un fichier on peux utilisé la commande suivante :
Pour faire une sauvegarde de etcd dans un fichier on peux utiliser la commande suivante :
~~~
# etcdctl --endpoints=http://127.0.0.1:2379 snapshot save /home/backup/etcd-foo1.db
@ -133,7 +132,7 @@ Pour faire une sauvegarde de etcd dans un fichier on peux utilisé la commande s
Snapshot saved at /home/backup/etcd-foo1.db
~~~
On peux vérifié le contenu de la sauvegarde, pour savoir le nombre de clé quelle contient, sa taille etc...
On peux vérifier le contenu de la sauvegarde, pour savoir le nombre de clés quelle contient, sa taille…
~~~
# etcdctl --write-out=table --endpoints=http://127.0.0.1:2379 snapshot status /home/backup/etcd-foo1.db