场景:在k8s集群中使用helm搭建一个服务,命名空间删除后,一直显示Terminating
状态,无法重新创建新的服务
可使用kubectl中的强制删除命令 # 删除POD kubectl delete pod PODNAME --force --grace-period=0 # 删除NAMESPACE kubectl delete namespace NAMESPACENAME --force --grace-period=0 其中的--grace-period=0,代表参数terminationGracePeriodSeconds ,这个参数默认等于30秒, 在删除资源时,K8S 会给旧资源发送SIGTERM信号,并且等terminationGracePeriodSeconds 这么长的时间,这里直接指定为0就不需要等待优雅删除了,直接删除。
若以上方法无法删除,可使用第二种方法,直接从ETCD中删除源数据(这是一种最暴力的方式,
我们不建议直接操作etcd中的数据,在操作前请确认知道你是在做什么。)
毁灭级方法: # 删除default namespace下的pod名为pod-to-be-deleted-0 ETCDCTL_API=3 etcdctl del /registry/pods/default/pod-to-be-deleted-0 # 删除需要删除的NAMESPACE etcdctl del /registry/namespaces/NAMESPACENAME