Notes etcd

Voir aussi :

CouchDB

Intro

https://etcd.io/

https://etcd.io/docs/v3.5/dev-guide/interacting_v3/

https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/quest-ce-quetcd/

https://www.blackcreeper.com/kubernetes/etcd-decouverte-et-premiers-pas/

Install

http://play.etcd.io/install

https://www.digitalocean.com/community/tutorials/how-to-set-up-and-secure-an-etcd-cluster-with-ansible-on-ubuntu-18-04-fr

https://docs.okd.io/3.11/admin_guide/assembly_replace-etcd-member.html

apt install etcd-client apt-get install etcd

Config

Droits

https://etcd.io/docs/v3.5/demo/

Exemples basiques

Lancement

etcd

Connexion

etcdctl --endpoints http://127.0.0.1:2379 get /

Put

etcdctl put greeting "Hello, etcd"

Get

ETCDCTL_API=3 etcdctl get greeting etcdctl get foo --print-value-only etcdctl get --prefix --rev=4 foo etcdctl watch foo --hex
etcdctl --no-sync --peers https//plop1.lan:10835,https//plop2.lan:10836 -u username:password ls / alias e='etcdctl --ca-file ~/compose_etcd.pk --no-sync --peers https://aws-us-east-1-portal10.dblayer.com:10835,https://aws-us-east-1-portal11.dblayer.com:27265 -u root:*********'
etcdctl mk x 3 etcdctl mk y 123 etcdctl ls etcdctl get /y etcdctl set new 6 etcdctl set d/a 4 etcdctl set d/b 5 etcdctl ls d etcdctl rm --recursive d # TTL of 5 seconds etcdctl mk e 4 --ttl "5"
export ETCDCTL_API=3 export ETCDCTL_ENDPOINTS=$(minikube service example-etcd-cluster-client-service --url)

backup (cluster & local)Voir https://etcd.io/docs/v3.5/op-guide/recovery/

ETCDCTL_API=3 etcdctl --endpoints $ENDPOINT snapshot save snapshot.db #--cacert /etc/ssl/etcd/ca.crt --cert /etc/ssl/etcd/client.crt --key /etc/ssl/etcd/client.key

Verify the snapshot:

ETCDCTL_API=3 etcdctl --write-out=table snapshot status snapshotdb

Restore (local)

ETCDCTL_API=3 etcdctl snapshot restore snapshot.db

grpc-proxy

etcd grpc-proxy start --endpoints=infra0.example.com,infra1.example.com,infra2.example.com --listen-addr=127.0.0.1:2379

Tuning

IO

# best effort, highest priority sudo ionice -c2 -n0 -p `pgrep etcd`

CPU

echo performance | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Diag

sudo chown -R etcd:etcd /var/lib/etcd sudo systemctl start etcd

List the cluster member:

etcdctl --endpoints=http://${NODE1}:2379 member list

Client API Python

https://www.dasblinkenlichten.com/python-pieces-working-with-etcd/

Autre

pas de type list ?

Voir https://github.com/ake-persson/etcdtool

etcd doesn't support list's, this is handled by using the index as the key:

JSON Input:

{ "users": [ { "username": "jblack", "first_name": "John", "last_name": "Blackbeard" }, { "username": "ltrier", "first_name": "Lars", "last_name": "Von Trier" } ] }

Result in etcd:

users/0/username: jblack
users/0/first_name: John
users/0/last_name: Blackbeard
users/1/username: ltrier
users/1/first_name: Ludwig
users/1/last_name: Von Treimer