ETCD kubeadm getsockopt:连接被拒绝
ETCD kubeadm getsockopt: connection refused
我想从我的 kurnetes 集群中使用我的 etcd pod 的 etcdctl 功能,但我不能。我已经从 kubeadm 安装了我的 kubernetes,我有 1 个主节点和 1 个节点。
当我从我的 etcd pod 中尝试命令 etcdctl 时,我得到了这些错误:
client: etcd cluster is unavailable or misconfigured;
error #0:malformed HTTP response "\x15\x03\x01\x00\x02\x02" ;
error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused
但是当我检查我的 etcd pod 日志时,它看起来很健康:
看起来您 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
的 运行ning 版本 3.x,您必须通过提供 ETCDCTL_API
环境变量来告诉 etcdctl
。
编辑:
供参考:
我使用的是 kubeadm
版本 1.11.1,它在服务器 运行ning Ubuntu 18.04 上安装了 etcd
版本 3.2.18 测试上面的命令。
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 member list
我想从我的 kurnetes 集群中使用我的 etcd pod 的 etcdctl 功能,但我不能。我已经从 kubeadm 安装了我的 kubernetes,我有 1 个主节点和 1 个节点。
当我从我的 etcd pod 中尝试命令 etcdctl 时,我得到了这些错误:
client: etcd cluster is unavailable or misconfigured;
error #0:malformed HTTP response "\x15\x03\x01\x00\x02\x02" ;
error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused
但是当我检查我的 etcd pod 日志时,它看起来很健康:
看起来您 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
的 运行ning 版本 3.x,您必须通过提供 ETCDCTL_API
环境变量来告诉 etcdctl
。
编辑:
供参考:
我使用的是 kubeadm
版本 1.11.1,它在服务器 运行ning Ubuntu 18.04 上安装了 etcd
版本 3.2.18 测试上面的命令。
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 member list