我想使用kurnetes集群中etcd pod的etcdctl功能,但我不能。我已经从kubeadm安装了我的kubernetes,我有1个主节点和1个节点。
当我从etcd pod内部尝试命令etcdctl时,我得到了这些错误:
客户端:etcd 集群不可用或配置错误;
错误 #0:格式错误的 HTTP 响应“\x15\x03\x01\x00\x02\x02”;
错误 #1:拨打 TCP 127.0.0.1:4001:Getsockopt:连接被拒绝
但当我检查我的蚀刻吊舱日志时,它似乎很健康:
看起来你有etcd
监听https://127.0.0.1:2379
上的客户端连接,并且据我所知,你已经启用了客户端证书身份验证。然后,您应该能够运行以下命令来连接到etcd
:
ETCDCTL_API=3 etcdctl member list \
--endpoints=https://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
基本上 etcd
希望您使用客户端证书进行身份验证。
此外,由于您运行的是3.x版的< code>etcd,您必须通过提供< code>ETCDCTL_API环境变量来告诉< code>etcdctl。
编辑:
供参考:
测试上面的命令时,我使用的是< code>kubeadm版本1.11.1,它在运行Ubuntu 18.04的服务器上安装了< code>etcd版本3.2.18。
ETCDCTL_API=3 etcdctl--endpoint=localhost:2379--cacert=/etc/kubernetes/pki/etcd/ca.crt--cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt--key=/etc/kubernetes/pki/etcd/healthcheck-client.key成员列表