原因:

这是由命名空间控制器无法删除的命名空间中仍存在的资源引起的
此命令(使用kubectl 1.11+)将显示命名空间中保留的资源:
kubectl api-resources --verbs=list --namespaced -o name  | xargs -n 1 kubectl get --show-kind --ignore-not-found -n <namespace>

然后对未释放的资源进行删除

migcluster删除不掉,导致ns删除不掉的场景

比如有时候删除资源删除不掉如下
kubectl delete migcluster.migration.yinhestor.com/host-cluster -n qiming migcluster.migration.yinhestor.com "host-cluster" deleted

删除不掉,一直卡在deleted

我们可以采取一下方案
1.使用 kubectl get 命令来检查资源是否仍然列出:
kubectl get migcluster.migration.yinhestor.com host-cluster -n qiming

2.查看资源的详细信息
使用 kubectl describe 命令来获取资源的详细信息,这可能会显示阻止删除的原因:
kubectl describe migcluster.migration.yinhestor.com host-cluster -n qiming

3.移除 Finalizers
如果在资源描述中看到 finalizers,那么你可能需要手动移除它们。这可以通过编辑资源来完成:
kubectl edit migcluster.migration.yinhestor.com host-cluster -n qiming
在打开的编辑器中,找到 finalizers 字段并将其值清空或删除该字段,然后保存并退出编辑器。

4.使用 patch 命令移除 Finalizers
如果直接编辑比较困难,你也可以尝试使用 kubectl patch 命令来快速移除 finalizers:
kubectl patch migcluster.migration.yinhestor.com host-cluster -n qiming -p '{"metadata":{"finalizers":[]}}' --type=merge

移除掉关联的资源,最后发现ns自然可以删除了。