在etcd中看不到kubernetes的数据

发布于 2022-09-04 12:41:32 字数 2264 浏览 18 评论 0

k8s中的数据(如namespace)是保存在etcd中的吧?如果不是的话请告诉我,然后不用看下面的了 :)

说明:我是etcd新手,之前没用过,它的一些概念不了解

我通过命令hack/local-up-cluster.sh启动的k8s
启动后查看apiserver和etcd如下:

root@ming:/tmp# ps aux|grep apiserver
root      96196 18.0  5.3 379444 108668 pts/1   Sl+  19:33   0:01 /home/ming/project/golang/src/k8s.io/kubernetes/_output/bin/hyperkube apiserver --v=3 --cert-dir=/var/run/kubernetes --client-ca-file=/var/run/kubernetes/client-ca.crt --service-account-key-file=/tmp/kube-serviceaccount.key --service-account-lookup=false --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,SecurityContextDeny,ResourceQuota,DefaultStorageClass --bind-address=0.0.0.0 --secure-port=6443 --tls-ca-file=/var/run/kubernetes/apiserver.crt --insecure-bind-address=127.0.0.1 --insecure-port=8080 --etcd-servers=http://127.0.0.1:2379 --service-cluster-ip-range=10.0.0.0/24 --feature-gates=AllAlpha=true --cloud-provider= --cloud-config= --requestheader-username-headers=X-Remote-User --requestheader-group-headers=X-Remote-Group --requestheader-extra-headers-prefix=X-Remote-Extra- --requestheader-client-ca-file=/var/run/kubernetes/request-header-ca.crt --requestheader-allowed-names=system:auth-proxy --cors-allowed-origins=/127.0.0.1(:[0-9]+)?$,/localhost(:[0-9]+)?$
root@ming:/tmp# ps aux|grep etcd
root      96079  2.8  1.0 10518408 22272 pts/1  Sl+  19:33   0:01 etcd --advertise-client-urls http://127.0.0.1:2379 --listen-client-urls http://127.0.0.1:2379 --debug

根据上面的输出k8s是连接到http://127.0.0.1:2379上的etcd并且我的机器上只启动了一个etcd

查看namespace发现是有数据的:

root@ming:/tmp# kubectl get ns
NAME          STATUS    AGE
default       Active    4m
kube-system   Active    4m

然后在etcd中看不到k8s的数据:

root@ming:/tmp# etcdctl --endpoints=http://127.0.0.1:2379 ls
root@ming:/tmp# 

开始以为etcd像redis那样有多个数据库,没查到相关说明,应该是没有。
后来看到etcd有user的概念,试了一下(也可能是我试的有问题),user a的数据user b也能看到

root@ming:/tmp# etcdctl -u a:a set aaa aaa
aaa
root@ming:/tmp# etcdctl -u a:a ls
/aaa
root@ming:/tmp# etcdctl -u b:b ls
/aaa

所以现在请求帮助,为什么通过etcdctl查不到k8s在etcd中的数据,谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倾听心声的旋律 2022-09-11 12:41:32

自己找到了原因
使用hack/local-up-cluster.sh启动的k8s会使用etcd v3版本的API记录数据。而默认etcdctl是使用v2版本的API,查看不到v3的数据。设置环境变量ETCDCTL_API=3后就OK了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文