etcd 键值存储命令行客户端
etcdctl 连接 etcd 集群读写键值、查看成员和健康状态、管理租约与快照。Kubernetes 的集群状态就存在 etcd 里,操作前必须确认目标集群和备份。
etcdctl --endpoints=https://127.0.0.1:2379 endpoint health
etcdctl --endpoints=https://10.0.0.1:2379,https://10.0.0.2:2379 endpoint status -w table
etcdctl member list -w table
etcdctl put /app/config '{"debug":false}'
etcdctl get /app/config
etcdctl get /app/ --prefix --keys-only
etcdctl del /app/config
etcdctl watch /app/ --prefix
etcdctl lease grant 3600
etcdctl compact 12345
etcdctl defrag --endpoints=https://127.0.0.1:2379
etcdctl snapshot save /backup/etcd-$(date +%F).db
TLS 集群:
etcdctl \
--endpoints=https://10.0.0.1:2379 \
--cacert=/etc/etcd/ca.crt \
--cert=/etc/etcd/client.crt \
--key=/etc/etcd/client.key \
endpoint health
ETCDCTL_API=3;v3.4 起默认就是 v3,混用 API 版本会出现读写不一致的错觉。endpoint health 和成员状态,不要盲目重启。defrag 会阻塞当前成员的读写,逐个执行并观察集群健康。compact 清除历史版本,defrag 回收磁盘空间;两者不能互相替代。get --prefix 很容易一次拉出大量数据;先加 --limit 或 --keys-only。kubectl — 查看集群状态systemctl — 管理 etcd 服务