etcdctl使用查询和备份

使用etcdctl查询

前缀查询,获取目录
ETCDCTL_API=3 使用V3版本API
使用--prefix可以看到所有的子目录
使用--keys-only=true可以仅查看key
-w=json|python -m json.tool 使用json输出

因为集群内的etcd都是通过证书来访问,需要指定所需的证书文件

作者:wowshiwoniu
链接:https://www.jianshu.com/p/e428b6dba8e9
来源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

查看备份数据

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  --write-out=table snapshot status  /tmp/etcd-snapshot-20210524.db 
image.png

查看现在集群的状态

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  \
endpoint status --write-out=table
image.png

你可能感兴趣的:(etcdctl使用查询和备份)