首页 > 解决方案 > 在 Kubernetes 集群上使用 etcdctl 时出错:“证书由未知权限签名”

问题描述

我正在运行 minikube,我正在尝试列出我的 ETCD 上的密钥。

etcdctl我从github下载了最新的客户端:
https ://github.com/etcd-io/etcd/releases/download/v3.3.18/etcd-v3.3.18-linux-amd64.tar.gz

我尝试使用以下证书运行它/home/myuser/.minikube/certs

./etcdctl --ca-file /home/myuser/.minikube/certs/ca.pem 
          --key-file /home/myuser/.minikube/certs/key.pem 
          --cert-file /home/myuser/.minikube/certs/cert.pem  
          --endpoints=https://10.240.0.23:2379 get / 

我收到一个错误:

错误:客户端:etcd 集群不可用或配置错误;错误 #0:x509:证书由未知机构签名

错误 #0:x509:证书由未知机构签名

我使用了正确的证书吗?

我尝试了不同的证书:

./etcdctl --ca-file /var/lib/minikube/certs/ca.crt 
          --key-file /var/lib/minikube/certs/apiserver-etcd-client.key 
          --cert-file /var/lib/minikube/certs/apiserver-etcd-client.crt 
          --endpoints=https://10.240.0.23:2379 get /   

我从以前收到了同样的错误。

知道有什么问题吗?

标签: kubernetesminikubeetcdetcdctl

解决方案


对于 minikube,etcd 证书的正确路径是:/var/lib/minikube/certs/etcd/ 所以命令将是这样的:

# kubectl -n kube-system exec -it etcd-minikube -- sh -c "ETCDCTL_API=3 ETCDCTL_CACERT=/var/lib/minikube/certs/etcd/ca.crt ETCDCTL_CERT=/var/lib/minikube/certs/etcd/server.crt ETCDCTL_KEY=/var/lib/minikube/certs/etcd/server.key etcdctl endpoint health"

推荐阅读