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

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



但是当我检查etcd pod日志时,看起来很健康:

kubernetes - ETCD kubeadm getsockopt:连接被拒绝-LMLPHP

最佳答案

看来您已经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。

关于kubernetes - ETCD kubeadm getsockopt:连接被拒绝,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51592180/

10-15 20:23