这个问题发生在我们使用kubectl delete 名字 命令时,时间太长,以为删除失败,直接ctrl+c结束了,相当于删了一半没删完,此刻ns的状态就为Terminating了,这样的状态在用普通的删除方法是无法删除的。
使用以下方法即可删除。

kubectl get ns dev -o json > /tmp/dev.json

删除掉 “spec” 下的内容,即spec的{}为空
删除其中的spec字段,因为k8s集群是携带认证的

vim  /tmp/dev.json  

在这里插入图片描述
cd /tmp

curl -k -H “Content-Type: application/json” -X PUT --data-binary @dev.json http://127.0.0.1:8001/api/v1/namespaces/dev/finalize

输出以下代表成功:

{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
    "name": "dev",
    "selfLink": "/api/v1/namespaces/dev/finalize",
    "uid": "bb180481-cf36-4140-86b8-cf802a730763",
    "resourceVersion": "496797",
    "creationTimestamp": "2022-02-15T07:04:09Z",
    "deletionTimestamp": "2022-02-16T05:45:20Z",
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\onTimestamp\":\"2022-02-15T07:04:09Z\",\"deletionTimestamp\":\"2022-02-16T05:45::\"/api/v1/namespaces/dev\",\"uid\":\"bb180481-cf36-4140-86b8-cf802a730763\"},\"ctive\"}}\n"
    }
  },
  "spec": {
 
  },
  "status": {
    "phase": "Terminating"
  }
}
Logo

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

更多推荐