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.