Etcd命令
docker exec -u root -it etcd容器id sh
export ETCDCTL_API=3
alias myetcd="etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key --endpoints https://127.0.0.1:2379"
get
# 查询所有key
myetcd get --prefix --keys-only ""
# 按 key 前缀查询
myetcd get key名称 --prefix
# 按key查询
myetcd get key名称
# 获取key的json详情
myetcd get key名称 -w json
# 获取key的某个版本的值
myetcd get key名称 --rev={reversion}
put
myetcd put {key} {value}
del
# 按key精准删除
myetcd del {key}
# 按key前缀删除
myetcd del {key} --prefix
查看etcd的状态
# 成员查找
myetcd endpoint status -w table
# 健康状态
myetcd endpoint health
压缩etcd空间
# 获取当前版本并压缩所有旧版本
rev=$(myetcd endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
myetcd compact $rev
# 整理多余空间
myetcd defrag
# 查看告警
myetcd alarm list
# 取消告警
myetcd alarm disarm
跨集群数据同步
# A Etcd集群向B Etcd集群通过list/watch实时同步数据,实现机房异地容灾。
ETCDCTL_API=3 etcdctl make-mirror https://[备集群IP]:2379 --endpoints=https://[主集群IP]:2379 --no-dest-prefix=true --cacert=[主集群根证书路径] --cert=[主集群客户端证书路径] --key=[主集群客户端私钥路径] --dest-cacert=[备集群根证书路径] --dest-cert=[备集群客户端证书路径] --dest-key=[备集群客户端私钥路径]
浙公网安备 33010602011771号