天天看點

kubernetes強制删除pod、namespace等資源

場景:在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
           

繼續閱讀