使用etcdctl查询
前缀查询,获取目录
ETCDCTL_API=3 使用V3版本API
使用--prefix可以看到所有的子目录
使用--keys-only=true可以仅查看key
-w=json|python -m json.tool 使用json输出
因为集群内的etcd都是通过证书来访问,需要指定所需的证书文件
ETCDCTL_API=3 etcdctl --endpoints="https://127.0.0.1:2379" \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
get /registry/namespaces --prefix -w=json|python -m json.tool
输出如下
{
"count": 1,
"header": {
"cluster_id": 3062785408171499891,
"member_id": 10892522639324701955,
"raft_term": 3,
"revision": 2339318
},
"kvs": [
{
"create_revision": 146,
"key": "L3JlZ2lzdHJ5L25hbWVzcGFjZXMvZGVmYXVsdA==",
"mod_revision": 146,
"value": "azhzAAoPCgJ2MRIJTmFtZXNwYWNlEl8KRQoHZGVmYXVsdBIAGgAiACokMzNiZjg3NjUtNzU0Ni00OGVjLWEwNjUtMjg4OWJiMWIyMzdmMgA4AEIICKuo9vcFEAB6ABIMCgprdWJlcm5ldGVzGggKBkFjdGl2ZRoAIgA=",
"version": 1
}
]
}
可以看到key和value均是一串字符串,是base64加密过后的,若需要查看明文,可以通过简单的shell脚本来实现。这里只是简单的展示一下
$ echo -n "L3JlZ2lzdHJ5L25hbWVzcGFjZXMvZGVmYXVsdA==" | base64 -d
/registry/namespaces/default
备份
ETCDCTL_API=3 etcdctl --endpoints="https://127.0.0.1:2379" \
--cert=/etc/kubernetes/pki/etcd/server.crt \
--key=/etc/kubernetes/pki/etcd/server.key \
--cacert=/etc/kubernetes/pki/etcd/ca.crt \
snapshot save /tmp/etcd-snapshot-`date +%Y%m%d`.db
网友评论