如何访问etcd中的kubernetes密钥

问题描述 投票:6回答:3

Question

如何从etcd获取Kubernetes相关密钥?试图列出etcd中的键,但无法看到相关的键。还在哪里安装了etcdctl?

$ etcdctl
bash: etcdctl: command not found..

$ sudo netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:2379          0.0.0.0:*               LISTEN      386/etcd            
tcp        0      0 127.0.0.1:2380          0.0.0.0:*               LISTEN      386/etcd            

$ curl -s http://localhost:2379/v2/keys | python -m json.tool
{
    "action": "get",
    "node": {
        "dir": true
    }
}

Background

通过在CentOS 7上关注Using kubeadm to Create a Cluster安装了Kubernetes 1.8.5。当我查看Getting started with etcd时,v2 / keys看起来是终点。

kubernetes etcd
3个回答
15
投票

通常你需要自己获得etcdctl。只需从etcdctl下载最新的etcd releases page存档。

此外,从Kubernetes版本1.6开始,它使用etcd版本3,因此要获得所有键的列表是:

ETCDCTL_API=3 etcdctl --endpoints=<etcd_ip>:2379 get / --prefix --keys-only

你可以使用以下方法找到所有etcdctl v3动作:

ETCDCTL_API=3 etcdctl --endpoints=<etcd_ip>:2379 --help

编辑(感谢@leodotcloud):

如果ETCD配置了TLS证书支持:

ETCDCTL_API=3 etcdctl --endpoints <etcd_ip>:2379 --cacert <ca_cert_path> --cert <cert_path> --key <cert_key_path> get / --prefix --keys-only

5
投票

访问docker容器,然后运行以下命令:

ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key get / --prefix --keys-only


0
投票

我需要在CoreOS(Container Linux)上安装etcd使用etcdctl。在我的情况下,以下工作(从CoreOS shell提示符执行):

$ sudo ETCDCTL_API=3 etcdctl --cacert /etc/ssl/etcd/etcd/peer-ca.crt --cert /etc/ssl/etcd/etcd/peer.crt --key /etc/ssl/etcd/etcd/peer.key get --prefix / --keys-only

我使用sudo作为权限问题的快速解决方案“错误:打开/etc/ssl/etcd/etcd/peer.crt:权限被拒绝”。

© www.soinside.com 2019 - 2024. All rights reserved.