有没有好的方法来访问 minikube 集群的 etcd 数据存储?我正在尝试为 kubernetes pod 上的事件创建一个观察程序,但我需要查看 etcd 更改日志。到目前为止,我已经运行了kubectl exec -it --namespace kube-system etcd-minikube sh
,它通过 ssh-s 我进入 minikube 主机,但从那里我无法访问 etcd
, etcdctl
超时,我什至无法运行python
。有没有一种干净的方法来做到这一点?这些链接似乎已过时。
https://github.com/kubernetes/minikube/blob/master/docs/accessing_etcd.md以及引用 localkube 的任何其他来源都已过时。
最佳答案
我能够检查 minikube v1.2.0 etcd v3 通过 gRPC 连接 channel 消息传递协议(protocol)并且运行良好。
我通过两种方式检查连接:直接在 etcd-minikube
Pod 内以及通过 etcdctl 从我的 minikube 托管机器外部检查连接。二进制文件注入(inject)那里。
Minikube ETCD证书 list 位于此处:/var/lib/minikube/certs/etcd/
,我使用了其中一些证书来对 etcd 存储进行身份验证。
您可以使用以下查询字符串从 etcd-minikube
Pod 内进行连接,但首先您必须将 etcd 证书分发到此 Pod 中;这可以通过 kubectl cp 命令完成:
sudo kubectl cp/var/lib/minikube/certs/etcd/etcd-minikube:/SOME_PATH -n kube-system
ETCDCTL_API=3 etcdctl --cacert=/PATH/TO/ETCD/CERTS/ca.crt --key=/PATH/TO/ETCD/CERTS/server.key --cert=/PATH/TO/ETCD/CERTS/server.crt get/--prefix --keys-only
来 self 的 minikube 主机访问 etcd 端点的查询字符串:
ETCDCTL_API=3 etcdctl --cacert=/PATH/TO/ETCD/CERTS/ca.crt --key=/PATH/TO/ETCD/CERTS/server.key --cert=/PATH/TO/ETCD/CERTS/server.crt --endpoints "https://$(minikube ip):2379"get/--prefix --keys-only
关于kubernetes - 通过 minikube 观察 etcd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56844130/