如果我运行etcdctl,它就挂起了。如果我使用--debug=true,我会看到:
root@k8scp:~# kubectl exec -n kube-system -it etcd-k8scp sh
sh-5.1# ETCDCTL_API=3 etcdctl --debug=true endpoint health
{"level":"warn","ts":1643546720.7707205,"logger":"client","caller":"v3/retry_interceptor.go:62","msg":"retrying of unary invoker failed","target":"etcd-endpoints://0xc0005681c0/127.0.0.1:2379","attempt":0,"error":"rpc error: code = DeadlineExceeded desc = latest balancer error: last connection error: connection closed"}
127.0.0.1:2379 is unhealthy: failed to commit proposal: context deadline exceeded
Error: unhealthy cluster我知道这首歌没问题。
为什么这个命令失败了?
发布于 2022-01-30 12:50:12
我通过查看日志找到了解决方案:
root@k8scp:~# kubectl logs -n kube-system etcd-k8scp
{"level":"warn","ts":"2022-01-30T12:45:09.762Z","caller":"embed/config_logging.go:169",
"msg":"rejected connection","remote-addr":"127.0.0.1:36846","server-name":"",
"error":"tls: first record does not look like a TLS handshake"}服务器需要TLS,但是etcdctl的默认端点是通过http (而不是https)的本地主机。
https://serverfault.com/questions/1091649
复制相似问题