avatar

K8S中的etcd存了哪些数据


ETCD是一个分布式的KV存储数据库,基于Raft协议实现数据的强一致性,提供HTTP,gRPC协议的API调用,基于gRPC提供Watch机制,常被用来作为分布式锁的底层实现,除了作为K8S的数据存储, 它也可以用于服务发现,配置中心等。本文基于它的API3版本来操作

连接

在K8s集群中, 通过 hostname -I找到etcd的监听地址

1[root@VM-20-3-centos ~]# hostname -I
210.0.20.3 192.168.32.1 172.17.0.1 10.244.0.0 10.244.0.1

在k8s集群中,etcd通过证书形式实现授权登录,查找它的证书文件位置

1[root@VM-20-3-centos ~]# ps -ef | grep etcd
2root      2686  2663  1 3月11 ?       22:51:54 etcd --advertise-client-urls=https://10.0.20.3:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client-cert-auth=true --data-dir=/var/lib/etcd --initial-advertise-peer-urls=https://10.0.20.3:2380 --initial-cluster=vm-20-3-centos=https://10.0.20.3:2380 --key-file=/etc/kubernetes/pki/etcd/server.key --listen-client-urls=https://127.0.0.1:2379,https://10.0.20.3:2379 --listen-metrics-urls=http://127.0.0.1:2381 --listen-peer-urls=https://10.0.20.3:2380 --name=vm-20-3-centos --peer-cert-file=/etc/kubernetes/pki/etcd/peer.crt --peer-client-cert-auth=true --peer-key-file=/etc/kubernetes/pki/etcd/peer.key --peer-trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt --snapshot-count=10000 --trusted-ca-file=/etc/kubernetes/pki/etcd/ca.crt
alias ec="ETCDCTL_API=3; etcdctl --endpoints 10.0.20.3:2379 --cacert='/etc/kubernetes/pki/etcd/ca.crt' --cert='/etc/kubernetes/pki/etcd/peer.crt' --key='/etc/kubernetes/pki/etcd/peer.key'"

查询数据

[root@VM-20-3-centos ~]# ec get --keys-only --prefix=true "/registry/namespaces/"
/registry/namespaces/default

/registry/namespaces/kube-node-lease

/registry/namespaces/kube-public

/registry/namespaces/kube-system

/registry/namespaces/operators
1ec get --prefix=true "/registry/traefik.containo.us/ingressroutes/default/www" | tail -n2 | jq -r

可以看到,数据以json的形式存在etcd中。

库和工具

Libraries and tools有很多与etcd相关的库和工具。通过etcd-manager可以用GUI的形式查看etcd里面的数据

评论列表:

暂无评论 😭