问题:

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

 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐