k8s删除命名空间不动问题解决

2025-04-15  本文已影响0人  王宣成
  1. 强制删除命名空间的 Finalizer, Finalizer 是导致命名空间无法正常删除的常见原因。通过以下命令移除 Finalizer:
kubectl get namespace kuboard -o json > kuboard.json

编辑 kuboard.json,删除 spec.finalizers 字段中的所有内容:

{
  "apiVersion": "v1",
  "kind": "Namespace",
  "metadata": {
    ...
  },
  "spec": {
    "finalizers": []  # 删除原有内容,保留空数组
  }
}

应用修改:

kubectl replace --raw "/api/v1/namespaces/kuboard/finalize" -f kuboard.json
  1. 检查并删除残留资源, 即使 kubectl get all 显示无资源,某些资源(如 CRD、Webhook 等)可能未被列出
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -n kuboard --ignore-not-found

如果发现残留资源,手动删除它们:

kubectl delete <resource类型> <资源名称> -n kuboard
  1. 重新创建命名空间并部署 Kuboard, 确认命名空间已删除后,重新创建并部署:
kubectl delete namespace kuboard  # 确保旧命名空间已消失
kubectl create namespace kuboard
kubectl apply -f kuboard-v3-swr.yaml -n kuboard
  1. 检查命名空间和资源状态:
kubectl get namespace kuboard
kubectl get all -n kuboard
上一篇 下一篇

猜你喜欢

热点阅读