# 下载etcdctl二进制并放入容器
curl -O https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz
tar -zxvf etcd-v3.5.0-linux-amd64.tar.gz
docker cp etcd-v3.5.0-linux-amd64/etcdctl test-control-plane:/usr/bin
docker exec -it test-control-plane bash
chmod +x /usr/bin/etcdctl
alias myetcd="etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key --endpoints https://127.0.0.1:2379"
# 查询endpoints数据
# revision是最新的全局版本号,单调递增,与k8s对象resourceVersion无关
# create_revision是创建的全局版本号,保持不变,与k8s对象resourceVersion无关
# mod_revision是最近更新的全局版本号,单调递增,与k8s对象resourceVersion无关
# version在key创建时是1,每次更新+1,与k8s对象generation相同
# kvs里面key和value都是base64编码
myetcd get /registry/services/endpoints/default/kubernetes -w json
{
"header": {
"cluster_id": 15322685067764436105,
"member_id": 2583549131277751082,
"revision": 70869,
"raft_term": 20
},
"kvs": [
{
"key": "L3JlZ2lzdHJ5L3NlcnZpY2VzL2VuZHBvaW50cy9kZWZhdWx0L2t1YmVybmV0ZXM=",
"create_revision": 196,
"mod_revision": 69405,
"version": 21,
"value": "azhzAAoPCgJ2MRIJRW5kcG9pbnRzEsACCpoCCgprdWJlcm5ldGVzEgAaB2RlZmF1bHQiACokNGJjNTI3NzktNjgyYS00MGZkLTk0YjMtY2ZmODM0YWU5MmE1MgA4AEIICLqIqMYGEABaLwonZW5kcG9pbnRzbGljZS5rdWJlcm5ldGVzLmlvL3NraXAtbWlycm9yEgR0cnVligGYAQoOa3ViZS1hcGlzZXJ2ZXISBlVwZGF0ZRoCdjEiCAjWwPnJBhAAMghGaWVsZHNWMTpkCmJ7ImY6bWV0YWRhdGEiOnsiZjpsYWJlbHMiOnsiLiI6e30sImY6ZW5kcG9pbnRzbGljZS5rdWJlcm5ldGVzLmlvL3NraXAtbWlycm9yIjp7fX19LCJmOnN1YnNldHMiOnt9fUIAEiEKDgoKMTcyLjE4LjAuMxoAGg8KBWh0dHBzEKsyGgNUQ1AaACIA"
}
],
"count": 1
}
# watch报错etcdserver: mvcc: required revision has been compacted,说明版本已经被压缩
# get时--rev表示获取小于或者等于指定版本的最新数据
# 从开始版本开始watch key
myetcd watch /registry/services/endpoints/default/kubernetes --rev=196
# 从最近更新版本开始watch key
myetcd watch /registry/services/endpoints/default/kubernetes --rev=69405
# 从revision开始watch key
myetcd watch /registry/services/endpoints/default/kubernetes --rev=70869
# 压缩版本
myetcd compact 70869
# etcd不支持通过key来查看所有历史版本号,通过使用版本号可以确认历史版本是否已经被压缩
myetcd get /registry/services/endpoints/default/kubernetes --rev=70869