启动单例etcd
启动单例etcd,本地开发用
docker run -itd --restart always \
-p 2379:2379 -p 2380:2380 \
--name etcd_3_5_15 \
quay.io/coreos/etcd:v3.5.15 \
/usr/local/bin/etcd --data-dir=/etcd-data --name node1 \
--auto-compaction-mode=periodic --auto-compaction-retention=120h \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://0.0.0.0:2379 \
--listen-peer-urls http://0.0.0.0:2380 \
--initial-advertise-peer-urls http://0.0.0.0:2380 \
--initial-cluster node1=http://0.0.0.0:2380 \
--log-level info --logger zap --log-outputs stderr
集群操作
CONTAINER_ID=29e0b42a
alias etcdctl='docker exec -it ${CONTAINER_ID} etcdctl'
export ETCDCTL_API=3
etcdctl version
etcdctl member list
etcdctl member list --write-out="table"
etcdctl endpoint health
etcdctl snapshot save my.db
etcdctl snapshot status my.db -w table
key curd
etcdctl put put web1 value1
etcdctl put put web1 value11
etcdctl get web1
etcdctl get web1 -w json
etcdctl get web1 --rev=<REV>
etcdctl get --prefix web
etcdctl get --prefix --keys-only=true get web
etcdctl del web1
lease操作
etcdctl lease list
etcdctl lease grant 4000
lease 018f913ee99116bb granted with TTL(4000s)
etcdctl put web3 value3 --lease=018f913ee99116bb
//查看 刷新 撤销
etcdctl lease timetolive 018f913ee99116bb
etcdctl lease keep-alive 018f913ee99116bb
etcdctl lease revoke 1255775c01ff5f28
watch key
//阻塞接口, 监听PUT,DELETE等事件
etcdctl watch web1
etcdctl put web1 1000
etcdctl watch web --prefix
etcdctl put web1 10
etcdctl put web2 20
lock 等一个client释放另一个才能得到
etcdctl lock mutex1
# another client with the same name blocks
etcdctl lock mutex1
选举主节点
etcdctl elect one p1
# another client with the same name blocks
etcdctl elect one p2