問題:
k8s刪除資源狀態一直是Terminating
解決方法:
1、可使用kubectl中的強制刪除命令
# 刪除POD
kubectl delete pod PODNAME --force --grace-period=0
# 刪除NAMESPACE
kubectl delete namespace NAMESPACENAME --force --grace-period=0
2、若以上方法無法刪除,可使用第二種方法,直接從ETCD中刪除源數據(這是一種最暴力的方式,我們不建議直接操作etcd中的數據,在操作前請確認知道你是在做什麼。)
# 查看etcd存儲的kubenetes的數據結構信息
etcdctl --endpoints=https://10.0.0.154:2379,https://10.0.0.155:2379,https://10.0.0.156:2379 --cacert=/etc/etcd/ca/ca.pem --key=/etc/etcd/ca/etcd.key --cert=/etc/etcd/ca/etcd.pem get / --prefix --keys-only
# 刪除default namespace下的pod名爲pod-to-be-deleted-0
export ETCDCTL_API=3
etcdctl --endpoints=https://10.0.0.154:2379,https://10.0.0.155:2379,https://10.0.0.156:2379 --cacert=/etc/etcd/ca/ca.pem --key=/etc/etcd/ca/etcd.key --cert=/etc/etcd/ca/etcd.pem del /registry/pods/default/pod-to-be-deleted-0
# 刪除需要刪除的deploy
etcdctl --endpoints=https://10.0.0.154:2379,https://10.0.0.155:2379,https://10.0.0.156:2379 --cacert=/etc/etcd/ca/ca.pem --key=/etc/etcd/ca/etcd.key --cert=/etc/etcd/ca/etcd.pem del /registry/deployments/default/deploy-to-be-deleted-0
3、刪除後,重新創建pod出現無法創建,且刪除重建後的deploy、service卡死,可以重啓controller manager、scheduler
systemctl restart kube-scheduler
systemctl restart kube-controller-manager