最近在開發容器平臺項目時需要調tke對集羣進行CRUD操作,總是偶現調接口刪除集羣后,出現在tke界面顯示集羣處於Terminating。基於需求,寫下本篇文章。
獲取集羣中的etcd pod 列表
# ctl get po -n kube-system | grep etcd
etcd-192.168.xxx.45 1/1 Running 45 25d
etcd-192.168.xxx.46 1/1 Running 2 23d
etcd-192.168.xxx.47 1/1 Running 2 397d
進入etcd 容器並配置環境
# ctl exec -it etcd-192.168.xxx.46 -n kube-system -- /bin/sh
# etcd --version
etcd Version: 3.4.7
Git SHA: e694b7bb0
Go Version: go1.12.17
Go OS/Arch: linux/amd64
# alias etcdctl='etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key'
檢索etcd中的所有目錄和子目錄
# etcdctl get / --prefix --keys-only
檢索單個資源的詳細信息
輸出格式有四種,但是protobuf和simple會亂碼,這裏使用json格式。
# etcdctl get /tke/platform/clusters/cls-g5xxxtql -w json
{"header":{"cluster_id":16977795579664915518,"member_id":5537999761451951234,"revision":201808958,"raft_term":3778}}
etcdctl 刪除數據
以特殊數據爲例:tke的集羣刪除處於Terminating , 無法通過常規命令等刪除
# ctl get cls | grep Terminating
cls-vwxxx2cz Baremetal 1.18.3 Terminating 22d
cls-wc8xxxms Baremetal 1.18.3 Terminating 5d20h
cls-wflnxxx8 Baremetal 1.18.3 Terminating 5d11h
# etcdctl get / --prefix --keys-only | grep clusters
/tke/platform/clusters/cls-g5xxxtql
/tke/platform/clusters/cls-vwxxx2cz
/tke/platform/clusters/cls-wc8xxxms
/tke/platform/clusters/cls-wflnxxx8
/tke/platform/clusters/zisefeizhu
# etcdctl del /tke/platform/clusters/cls-vwxxx2cz
1
# ctl get cls | grep Terminating
cls-wc8xxxms Baremetal 1.18.3 Terminating 5d20h
cls-wflnxxx8 Baremetal 1.18.3 Terminating 5d11h
更多的etcd操作請查看:https://etcd.io/docs/v3.5/