etcd命令行操作key

159 阅读1分钟

启动单例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