kubernetes - 通过 minikube 观察 etcd

标签 kubernetes minikube etcd

有没有好的方法来访问 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/

相关文章:

docker - 如何以简单的方式在不停机的情况下更换负载均衡器Docker容器

kubernetes - 如何创建多节点 kubernetes 集群

kubernetes - 在 Windows 10 家庭版上设置 KUBECTL 时出现问题

amazon-ec2 - CoreOS、Fleet 和 Etcd2 容错

kubernetes - 无法检查 ETCD 集群运行状况

kubernetes - kubeadm init --apiserver-advertise-address 标志在配置文件中等效

kubernetes - Minikube 默认 CPU/内存

ubuntu - 完成作业不稳定的 Kubernetes 集群;充满 "http2: no cached connection was available"的 kubelet 日志

docker - 使用Minikube的Docker中的Hyper-v和VirtualBox冲突

java - Hazelcast(Java)和 ETCD(golang)的区别/相似之处?