我有一个“卡住”的名称空间,我删除显示在这个永恒的“终止”状态。
当前回答
调试类似的问题。
有两件重要的事情需要考虑:
1)在从命名空间中删除终结器之前要三思,因为可能有一些资源您不想自动删除,或者至少要了解为了排除故障而删除了哪些资源。
2)像kubectl api-resources——verbs=list这样的命令可能不会提供由外部crds创建的资源。
在我的例子中:
我用kubectl编辑ns <ns-name>,在状态->条件下,我看到我安装的一些外部crds未能被删除,因为它们添加了定义的终结器:
- lastTransitionTime: "2021-06-14T11:14:47Z"
message: 'Some content in the namespace has finalizers remaining: finalizer.stackinstall.crossplane.io
in 1 resource instances, finalizer.stacks.crossplane.io in 1 resource instances'
reason: SomeFinalizersRemain
status: "True"
type: NamespaceFinalizersRemaining
其他回答
手动编辑nsyaml对我来说不起作用,编辑时没有抛出错误,但更改没有生效。
这招对我很管用:
在一次会议中:
kubectl proxy
在另一个外壳中:
kubectl get ns <rouge-ns> -o json | jq '.spec.finalizers=[]' | curl -X PUT http://localhost:8001/api/v1/namespaces/<rouge-ns>/finalize -H "Content-Type: application/json" --data @-
来源:https://virtual-simon.co.uk/vsphere-kubernetes-force-deleting-stuck-terminating-namespaces-and-contexts/
这是由于名称空间控制器无法删除名称空间中仍然存在的资源。
这个命令(使用kubectl 1.11+)将显示名称空间中保留的资源:
kubectl api-resources --verbs=list --namespaced -o name \
| xargs -n 1 kubectl get --show-kind --ignore-not-found -n <namespace>
一旦找到并解析并删除这些名称空间,该名称空间就会被清理
对我们来说,是参数服务器崩溃。
因此,要检查这是否与您的情况相关,请运行以下命令:kubectl api-resources
如果你得到
错误:无法检索服务器api的完整列表:metrics.k8s。Io /v1beta1:服务器当前无法处理请求
那可能是同一个问题
感谢@javierprovecho
需要移除kubernetes的终结器。
步骤1:
kubectl get namespace <YOUR_NAMESPACE> -o json > <YOUR_NAMESPACE>.json
将kubernetes从finalizers数组中移除
步骤2:
kubectl replace --raw "/api/v1/namespaces/<YOUR_NAMESPACE>/finalize" -f ./<YOUR_NAMESPACE>.json
步骤3:
kubectl get namespace
您可以看到烦人的名称空间消失了。
如果命名空间停留在终止状态,而该命名空间中的资源已经被删除,您可以在删除命名空间之前修补该命名空间的终结器:
kubectl patch ns ns_to_be_deleted -p '{"metadata":{"finalizers":null}}';
then
kubectl delete ns ns_to_be_deleted;
编辑:
请先查看@Antonio Gomez Alvarado的回答。根本原因可能是答案中提到的度量服务器。
推荐文章
- Printf与std::字符串?
- Kubectl连续日志
- 我的kubernetes豆荚不断崩溃与“CrashLoopBackOff”,但我找不到任何日志
- 如何从kubectl配置中删除集群和上下文?
- Kubernetes支持多个环境(Staging、QA、生产等)
- CSS中*和*|*的区别是什么?
- Kubernetes API -获取特定节点上的pod
- 我如何调试“ImagePullBackOff”?
- Django:“projects”vs“apps”
- 在Kubernetes中更新configmap时重新启动pod ?
- 输入对象的datetime。Datetime没有Datetime属性
- 为部署的Kubernetes服务获取YAML ?
- 如何在kubernetes中切换命名空间
- \(反斜杠)在PHP(5.3+)中做什么?
- 位于另一个名称空间中的服务