k8s的namespace一直Terminating的完美解决方案

目前公司使用的k8s版本是v1.18.2,由于规定将namespace命名为项目名称,故:将不规范的namespace做了修改,由于是一个小项目在变更日做了如下修改,使用粗暴的方式:

1
2
3
4
5
6
7
8
[root@k8s-master1 ~]#kubectl  delete namespace  gf-prod
[root@k8s-master1 ~]# kubectl  get ns
NAME                          STATUS        AGE
aammini                       Active        353d
cattle-impersonation-system   Active        150d
cattle-system                 Active        150d
default                       Active        2y10d
gf-prod                       Terminating   62d   异常状态
解决方式:

(1)尝试了强制删除 kubectl delete namespace [namespace] --force --grace-period=0  和通过接口删除不怎么好使,下来有时间再做详细研究。

(2)直接问我们公司大佬,平常在工作中帮助我不少,感觉欠人家许多人情,有机会一定回报。(这个是我的心理话,大家勿喷!)

大佬发我的删除方式,直接拿来用,总感觉是好使的
gf-prod替换为真实的命名空间
kubectl get namespace gf-prod -o json \
            | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \
            | kubectl replace --raw /api/v1/namespaces/gf-prod/finalize -f -
执行操作:
[root@k8s-master1 ~]# kubectl get namespace gf-prod -o json \
> | tr -d "\n" | sed "s/\"finalizers\": \[[^]]\+\]/\"finalizers\": []/" \
> | kubectl replace --raw /api/v1/namespaces/gf-prod/finalize -f -
{"kind":"Namespace","apiVersion":"v1","metadata":{"name":"gf-prod","selfLink":"/api/v1/namespaces/gf-prod/finalize","uid":"0f84b066-4144-4e97-b523-74ee70433cb3","resourceVersion":"461320582","creationTimestamp":"2022-10-10T10:13:14Z","deletionTimestamp":"2022-12-09T12:08:38Z","deletionGracePeriodSeconds":0,"annotations":{"cattle.io/status":"{\"Conditions\":[{\"Type\":\"ResourceQuotaInit\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2022-10-10T18:13:15+08:00\"},{\"Type\":\"InitialRolesPopulated\",\"Status\":\"True\",\"Message\":\"\",\"LastUpdateTime\":\"2022-10-10T18:13:15+08:00\"}]}","kubectl.kubernetes.io/last-applied-configuration":"{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"gf-prod\"}}\n","lifecycle.cattle.io/create.namespace-auth":"true"},"managedFields":[{"manager":"rancher","operation":"Update","apiVersion":"v1","time":"2022-10-10T10:13:14Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{"f:cattle.io/status":{},"f:lifecycle.cattle.io/create.namespace-auth":{}}}}},{"manager":"kubectl","operation":"Update","apiVersion":"v1","time":"2022-10-11T02:58:58Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:kubectl.kubernetes.io/last-applied-configuration":{}}}}},{"manager":"kube-controller-manager","operation":"Update","apiVersion":"v1","time":"2022-12-09T12:09:06Z","fieldsType":"FieldsV1","fieldsV1":{"f:status":{"f:phase":{}}}}]},"spec":{},"status":{"phase":"Terminating","conditions":[{"type":"NamespaceDeletionDiscoveryFailure","status":"False","lastTransitionTime":"2022-12-09T12:08:43Z","reason":"ResourcesDiscovered","message":"All resources successfully discovered"},{"type":"NamespaceDeletionGroupVersionParsingFailure","status":"False","lastTransitionTime":"2022-12-09T12:08:43Z","reason":"ParsedGroupVersions","message":"All legacy kube types successfully parsed"},{"type":"NamespaceDeletionContentFailure","status":"False","lastTransitionTime":"2022-12-09T12:09:06Z","reason":"ContentDeleted","message":"All content successfully deleted, may be waiting on finalization"},{"type":"NamespaceContentRemaining","status":"False","lastTransitionTime":"2022-12-09T12:09:06Z","reason":"ContentRemoved","message":"All content successfully removed"},{"type":"NamespaceFinalizersRemaining","status":"False","lastTransitionTime":"2022-12-09T12:08:43Z","reason":"ContentHasNoFinalizers","message":"All content-preserving finalizers finished"}]}}
查看:
复制代码
[root@k8s-master1 ~]# kubectl  get ns 
NAME                          STATUS   AGE
aammini                       Active   353d
cattle-impersonation-system   Active   150d
cattle-system                 Active   150d
default                       Active   2y10d
异常完美删除
1
gf-prod                       Terminating   62d   异常状态
复制代码

 

posted @   逆风飞翔的博客  阅读(1123)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示