美文网首页kubernetes
etcdctl使用查询和备份

etcdctl使用查询和备份

作者: wowshiwoniu | 来源:发表于2020-07-15 17:06 被阅读0次

    使用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
    

    相关文章

      网友评论

        本文标题:etcdctl使用查询和备份

        本文链接:https://www.haomeiwen.com/subject/dvrjhktx.html