1、开启docker-desktop设置中kubernetes的Show system containers (advanced)
2、终端执行 docker ps | grep etcd
图示即为k8s的etcd容器
3、终端执行kubectl get pods -n kube-system
可以看到etcd的pod名称
4、终端执行kubectl describe pod etcd-docker-desktop -n kube-system
从pod的describe中可以看到command中写明了相关证书的路径
5、进入第二步找到的etcd容器docker exec -it 04607f704430 sh,查看/run/config/pki/etcd目录下的证书
这里存放了需要的证书文件
6、可以直接使用etcdctl命令访问etcd了
比如查看所有的namespace
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/run/config/pki/etcd/ca.crt --key=/run/config/pki/etcd/peer.key --cert=/run/config/pki/etcd/peer.crt get /registry/namespaces --prefix -w=json
需要指定ETCDCTL_API为3,指定–endpoints,指定三个证书。
可以指定别名:
alias ectl='ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/run/config/pki/etcd/ca.crt --key=/run/config/pki/etcd/peer.key --cert=/run/config/pki/etcd/peer.crt'
接下来就可以使用ectl
ectl get /registry/namespaces --prefix -w=json
下面就可以使用ectl的命令执行需要的操作了。