k8s删除某个名称空间后namespace一直处于Terminating状态

当使用kubectl删除Kubernetes的名称空间如kuboard后,如果它停留在Terminating状态,可以尝试通过获取namespace的json,清空finalizers字段,然后通过API服务器接口手动删除。具体步骤包括下载namespace文件,修改finalizers,使用kubectl proxy开启服务,最后通过curl命令调用API接口进行删除。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

k8s删除某个名称空间后namespace一直处于Terminating状态


这里以删除kuboard名称空间为例

背景:当使用kubectl delete -y kuboard.yaml后,该名称空间处于Terminating状态

解决办法:

1、下载该名称空间的json文件

kubectl get ns kuboard  -o json > kuboard.json

修改文件,将finalizers字段清空
将代码段

"spec": {
      "finalizers": [
          "kubernetes"
      ]
}

改为

"spec": {

},

保存文件

2、调用 api-server 接口进行删除

执行命令

kubectl proxy --port=8081

执行后控制台显示

Starting to serve on 127.0.0.1:8081

打开一个新的终端,在新的窗口中执行:

curl -k -H "Content-Type:application/json" -X PUT --data-binary @kuboard.json http://127.0.0.1:8081/api/v1/namespaces/kuboard/finalize

输出以下内容表示删除成功:

{
  "kind": "Namespace",
  "apiVersion": "v1",
  "metadata": {
    "name": "monitoring",
    "selfLink": "/api/v1/namespaces/monitoring/finalize",
    "uid": "db09b70a-6198-443b-8ad7-5287b2483a08",
    "resourceVersion": "6710357",
    "creationTimestamp": "2020-05-26T06:29:13Z",
    "deletionTimestamp": "2020-05-26T07:16:09Z",
    "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"monitoring\"}}\n"
    }
  },
  "spec": {

  },
  "status": {
    "phase": "Terminating"
  }
}

再次查看名称空间发现该名称空间已经被删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值