force delete the terminating pods

pull/117/head
Jimmy Song 2018-01-18 17:34:08 +08:00
parent 5f09300b84
commit 7a1e23d36b
1 changed files with 25 additions and 0 deletions

View File

@ -240,3 +240,28 @@ spec:
kubectl run --image=sz-pg-oam-docker-hub-001.tendcloud.com/library/centos:7.2.1511 --command '/bin/bash -c "while true;do sleep 1000;done"' centos-test
```
## 9. 强制删除一直处于Terminating状态的Pod
有时候当我们直接删除Deployment/DaemonSets/StatefulSet等最高级别的Kubernetes资源对象时会发现有些改对象管理的Pod一直处于Terminating而没有被删除的情况这时候我们可以使用如下方式来强制删除它
**一、使用kubectl中的强制删除命令**
```bash
kubectl delete pod $POD_ID --force --grace-period=0
```
如果这种方式有效,那么恭喜你!如果仍然无效的话,请尝试下面第二种方法。
**二、直接删除etcd中的数据**
> 这是一种最暴力的方式我们不建议直接操作etcd中的数据在操作前请确认知道你是在做什么。
假如要删除`default` namespace下的pod名为`pod-to-be-deleted-0`在etcd所在的节点上执行下面的命令删除etcd中保存的该pod的元数据
```bash
ETCDCTL_API=3 etcdctl del /registry/pods/default/pod-to-be-deleted-0
```
这时API server就不会再看到该pod的信息。
如何使用etcdctl查看etcd中包括的kubernetes元数据请参考[使用etcdctl访问kubernetes数据](../guide/using-etcdctl-to-access-kubernetes-data.md)