ETCD kubeadm getsockopt:连接被拒绝

时间:2018-07-30 10:42:53

标签: kubernetes etcd kubeadm

我想使用我的kurnetes集群中的etcd pod的etcdctl函数,但我不能。我已经从kubeadm安装了kubernetes,并且我有1个master和1个节点。

当我从我的etcd容器内部尝试命令etcdctl时,出现这些错误:

  

客户端:etcd群集不可用或配置错误;
  错误#0:格式错误的HTTP响应“ \ x15 \ x03 \ x01 \ x00 \ x02 \ x02”;
  错误#1:拨打tcp 127.0.0.1:4001:getsockopt:连接被拒绝

但是当我检查etcd pod日志时,它似乎很健康:

enter image description here

2 个答案:

答案 0 :(得分:0)

似乎您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希望您使用客户端证书进行身份验证。

另外,由于您正在运行etcd的3.x版本,因此必须通过提供etcdctl环境变量来告诉ETCDCTL_API

编辑:

供参考:

我使用的kubeadm版本1.11.1在测试上述命令时在运行Ubuntu 18.04的服务器上安装了etcd的版本3.2.18。

答案 1 :(得分:0)

  

ETCDCTL_API = 3 etcdctl --endpoints = 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成员列表

相关问题