orthographe
This commit is contained in:
parent
3896f2da04
commit
099c3dd80a
|
@ -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
|
Loading…
Reference in a new issue