k8s的实现核心实际上就是经过读写etcd数据库实现对资源的存储,管理和控制。数据库
k8s全部资源的本源都是存储在etcd中的一个个键值对。api
理论上能够观察到etcd数据库中的数据变化。具体的使用方式以下:工具
用$K8SPATH/hack/local-up-cluster.sh启动一个k8s服务。这个可执行脚本中的68行定义了etcd的版本,默认是etcd3,能够修改成etcd2。spa
这个版本很重要,由于etcd3和etcd2是彻底不一样的两个东西,二者彻底不兼容。命令行
etcdctl工具是一个能够对etcd数据进行管理的命令行工具,这个工具在两个不一样的etcd版本下的行为方式也彻底不一样。资源
export ETCDCTL_API=2get
export ETCDCTL_API=3io
以上两个语句分别将etcdctl访问的etcd版本调整为2或者3,下面分别说明两种不一样的版本如何分别进行数据的访问。hack
etcd2service
在etcd2的状况下,对etcd数据的访问以下:
etcdctl ls
能够逐级显示其当前的存储目录,直至到key-value
etcd3
etcdctl get / --prefix --keys-only
这条指令的意思是获取etcd中存储的全部key,而且前缀为 ‘/’,其结果相似于:
/registry/apiregistration.k8s.io/apiservices/v1.
/registry/apiregistration.k8s.io/apiservices/v1.authentication.k8s.io
对其中一个特定的键进行访问能够用一下方式进行:
etcdctl get /registry/apiregistration.k8s.io/apiservices/v1.