提问者:小点点

ETCD·库贝登·格索科普特:连接被拒绝


我想使用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:连接被拒绝

但当我检查我的蚀刻吊舱日志时,它似乎很健康:


共2个答案

匿名用户

看起来你有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成员列表