kubernetest通过etcd删除一直处于terminating状态的pod
背景简介:
删除pod时有时候会出现一直删不掉的情况,比如节点资源满了或者其他原因,导致pod一直处于Terminating状态,迟迟删除不掉。
解决办法:
1. 传统办法删除(此种办法此刻可能会一直处于无限等待中...)
[root@k8s-master ~]# kubectl delete -f nginx.yaml 或者 [root@k8s-master ~]# kubectl delete deployments nginx
2. 系统自带参数强制删除
[root@k8s-master ~]# kubectl delete pod nginx-5897bcd455-nmbrd --grace-period=0 --force
3. 进etcd库删除(不到万不得已,谨慎操作)
i. 先找到etcd的三个证书相关的文件,我的(kubeadm安装)在目录 /etc/kubernetes/pki/etcd/ 下
ii. 执行命令查找pod
ETCDCTL_API=3 etcdctl --endpoints=https://192.168.12.39:2379 --cacert=/etc/kubernetes/pki/etcd/ca.pem --cert=/etc/kubernetes/pki/etcd/etcd-client.pem --key=/etc/kubernetes/pki/etcd/etcd-client-key.pem get /registry/pod --prefix --keys-only | grep nginx-5897bcd455
iii. 执行命令删除pod
ETCDCTL_API=3 etcdctl --endpoints=https://192.168.12.39:2379 --cacert=/etc/kubernetes/pki/etcd/ca.pem --cert=/etc/kubernetes/pki/etcd/etcd-client.pem --key=/etc/kubernetes/pki/etcd/etcd-client-key.pem del /registry/pods/default/nginx-5897bcd455-nmbrd
删除成功,会返回1,就这样一个个删除即可。
如果这样都删不掉,那么..只能呵呵了啊。