介绍

最近一直在玩 EKS(Elastic Kubernetes Service -- Amazon EKS) 和 KubeSphere。 因为之前没有使用过 EKS 和 KubeSphere,所以这个过程也是一个试错的过程,在我使用 KubeSphere 的时候发现有一个日志服务,在好奇心的驱使下,我创建了它。

在我创建了日志服务(KubeSphere Logging System)以后,我发现我并不想使用它。(可能我只是想看看它到底是什么吧。)强迫症的我就想把它给删除掉。于是我在我的 EKS 中对他进行了强制删除:

$ kubectl delete ns kubesphere-logging-system  --force --grace-period=0

让人尴尬的是,这个 Namespace 并没有立马删除,我自我安慰道,可能 Namespace 下边有其他没有删除的资源在等待删除,我再等等。。。

过了半个小时,再次查看删除进度:

$ kubectl get  ns  kubesphere-logging-system
NAME                              STATUS        AGE
kubesphere-logging-system         Terminating   6d19h

它好像这地卡在了 Terminating 的状态。我试着寻找解决方法,参考这个 isue:http://github.com/kubernetes/kubernetes/issues/60807。但是这种方法要通过 API 才可以实现。EKS 是托管在 AWS 中的,我根本没有办法去操作 EKS 的后台。

终于我在这个 issue 中找到了答案:https://github.com/kubernetes/kubernetes/issues/60807#issuecomment-663853215

如何彻底删除 namespace

获取 namespace 的详情信息并转为 json

$ kubectl get namespace kubesphere-logging-system -o json > kubesphere-logging-system.json

打开 json 文件编辑

{"apiVersion": "v1","kind": "Namespace","metadata": {"creationTimestamp": "2021-12-31T05:03:58Z","deletionTimestamp": "2022-01-05T08:05:40Z","labels": {"kubesphere.io/namespace": "kubesphere-logging-system","kubesphere.io/workspace": "system-workspace"},"managedFields": [{"apiVersion": "v1","fieldsType": "FieldsV1","fieldsV1": {"f:metadata": {"f:labels": {".": {},"f:kubesphere.io/namespace": {}},"f:ownerReferences": {".": {},"k:{\"uid\":\"6d535470-2592-4f3c-a155-eabc362c339d\"}": {".": {},"f:apiVersion": {},"f:blockOwnerDeletion": {},"f:controller": {},"f:kind": {},"f:name": {},"f:uid": {}}}}},"manager": "controller-manager","operation": "Update","time": "2021-12-31T05:04:01Z"},{"apiVersion": "v1","fieldsType": "FieldsV1","fieldsV1": {"f:metadata": {"f:labels": {"f:kubesphere.io/workspace": {}}},"f:status": {"f:phase": {}}},"manager": "kubectl","operation": "Update","time": "2021-12-31T05:04:01Z"},{"apiVersion": "v1","fieldsType": "FieldsV1","fieldsV1": {"f:status": {"f:conditions": {".": {},"k:{\"type\":\"NamespaceContentRemaining\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceDeletionContentFailure\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceDeletionDiscoveryFailure\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceDeletionGroupVersionParsingFailure\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceFinalizersRemaining\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}}}}},"manager": "kube-controller-manager","operation": "Update","time": "2022-01-05T08:05:47Z"}],"name": "kubesphere-logging-system","ownerReferences": [{"apiVersion": "tenant.kubesphere.io/v1alpha1","blockOwnerDeletion": true,"controller": true,"kind": "Workspace","name": "system-workspace","uid": "6d535470-2592-4f3c-a155-eabc362c339d"}],"resourceVersion": "7376520","uid": "2b76e9b1-75f2-4a2e-a819-73b36aea188e"},"spec": {"finalizers": ["kubernetes" # 将此行删除]},"status": {"conditions": [{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "All resources successfully discovered","reason": "ResourcesDiscovered","status": "False","type": "NamespaceDeletionDiscoveryFailure"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "All legacy kube types successfully parsed","reason": "ParsedGroupVersions","status": "False","type": "NamespaceDeletionGroupVersionParsingFailure"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "All content successfully deleted, may be waiting on finalization","reason": "ContentDeleted","status": "False","type": "NamespaceDeletionContentFailure"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "Some resources are remaining: fluentbits.logging.kubesphere.io has 1 resource instances","reason": "SomeResourcesRemain","status": "True","type": "NamespaceContentRemaining"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "Some content in the namespace has finalizers remaining: fluentbit.logging.kubesphere.io in 1 resource instances","reason": "SomeFinalizersRemain","status": "True","type": "NamespaceFinalizersRemaining"}],"phase": "Terminating"}
}

找到 spec 将 finalizers 下的 kubernetes 删除。

具体如下

{"apiVersion": "v1","kind": "Namespace","metadata": {"creationTimestamp": "2021-12-31T05:03:58Z","deletionTimestamp": "2022-01-05T08:05:40Z","labels": {"kubesphere.io/namespace": "kubesphere-logging-system","kubesphere.io/workspace": "system-workspace"},"managedFields": [{"apiVersion": "v1","fieldsType": "FieldsV1","fieldsV1": {"f:metadata": {"f:labels": {".": {},"f:kubesphere.io/namespace": {}},"f:ownerReferences": {".": {},"k:{\"uid\":\"6d535470-2592-4f3c-a155-eabc362c339d\"}": {".": {},"f:apiVersion": {},"f:blockOwnerDeletion": {},"f:controller": {},"f:kind": {},"f:name": {},"f:uid": {}}}}},"manager": "controller-manager","operation": "Update","time": "2021-12-31T05:04:01Z"},{"apiVersion": "v1","fieldsType": "FieldsV1","fieldsV1": {"f:metadata": {"f:labels": {"f:kubesphere.io/workspace": {}}},"f:status": {"f:phase": {}}},"manager": "kubectl","operation": "Update","time": "2021-12-31T05:04:01Z"},{"apiVersion": "v1","fieldsType": "FieldsV1","fieldsV1": {"f:status": {"f:conditions": {".": {},"k:{\"type\":\"NamespaceContentRemaining\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceDeletionContentFailure\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceDeletionDiscoveryFailure\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceDeletionGroupVersionParsingFailure\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}},"k:{\"type\":\"NamespaceFinalizersRemaining\"}": {".": {},"f:lastTransitionTime": {},"f:message": {},"f:reason": {},"f:status": {},"f:type": {}}}}},"manager": "kube-controller-manager","operation": "Update","time": "2022-01-05T08:05:47Z"}],"name": "kubesphere-logging-system","ownerReferences": [{"apiVersion": "tenant.kubesphere.io/v1alpha1","blockOwnerDeletion": true,"controller": true,"kind": "Workspace","name": "system-workspace","uid": "6d535470-2592-4f3c-a155-eabc362c339d"}],"resourceVersion": "7376520","uid": "2b76e9b1-75f2-4a2e-a819-73b36aea188e"},"spec": {"finalizers": []},"status": {"conditions": [{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "All resources successfully discovered","reason": "ResourcesDiscovered","status": "False","type": "NamespaceDeletionDiscoveryFailure"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "All legacy kube types successfully parsed","reason": "ParsedGroupVersions","status": "False","type": "NamespaceDeletionGroupVersionParsingFailure"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "All content successfully deleted, may be waiting on finalization","reason": "ContentDeleted","status": "False","type": "NamespaceDeletionContentFailure"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "Some resources are remaining: fluentbits.logging.kubesphere.io has 1 resource instances","reason": "SomeResourcesRemain","status": "True","type": "NamespaceContentRemaining"},{"lastTransitionTime": "2022-01-05T08:05:47Z","message": "Some content in the namespace has finalizers remaining: fluentbit.logging.kubesphere.io in 1 resource instances","reason": "SomeFinalizersRemain","status": "True","type": "NamespaceFinalizersRemaining"}],"phase": "Terminating"}
}

执行清理命令

现在我们只需要一条命令 就可以彻底删除这个 Namespace。

 $ kubectl replace --raw "/api/v1/namespaces/kubesphere-logging-system/finalize" -f ./kubesphere-logging-system.json 

执行完以后,你需要等待一会,再次执行命令检查 Namespace。

 $ kubectl replace --raw "/api/v1/namespaces/kubesphere-logging-system/finalize" -f ./kubesphere-logging-system.json 

最后的检查

$ kubectl get ns kubesphere-logging-system
Error from server (NotFound): namespaces "kubesphere-logging-system" not found$ kubectl get ns
NAME                              STATUS   AGE
default                           Active   23d
kubesphere-controls-system        Active   9d
kubesphere-devops-system          Active   9d
kubesphere-devops-worker          Active   16h
kubesphere-monitoring-federated   Active   9d
kubesphere-monitoring-system      Active   9d
kubesphere-sample-dev             Active   8d
kubesphere-system                 Active   9d

再次查看的时候,它已经不存在了。

本文由博客一文多发平台 OpenWrite 发布!

删除 KubeSphere 中一直卡在 Terminating 的 Namespace相关推荐

  1. 强制删除k8s中的命名空间为 Terminating 的ns

    为什么删除ns的时候会出现 Terminating,并且删除不掉? 要删除一个命名空间,Kubernetes 必须删除该命名空间中的所有资源,然后检查注册的 API 服务的状态.如果该命名空间包含 K ...

  2. python mysql批量更新_Python批量删除mysql中千万级大量数据的脚本分享

    场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只 ...

  3. K8S集群中Pod资源处于Terminating或Unknown状态排查思路

    K8S集群中Pod资源处于Terminating或Unknown状态排查思路 文章目录 K8S集群中Pod资源处于Terminating或Unknown状态排查思路 1.Pod资源处于Terminat ...

  4. 语料库数据处理个案实例(计算机搭配强度、删除表中的停用词、词料检索的KWIC实现)

    7.5 计算机搭配强度 搭配是语言地道与否的标志,是区分本族语言和非本族语言的重要指标,因此,语料库语言学和语言教学都非常重视搭配的研究.比如,汉语的"吃饭"是动词与名词搭配,动词 ...

  5. /mnt/sdcard或者/sdcard这是Android手机中SD卡的文件夹路径

    Android系统的开放,使其用户可以自己查看系统和SD卡中的文件夹.就系统和SD卡中常见的目录代表什么意思,下面是一个较实用的总结: 一.SD卡中 1. /mnt/sdcard或者/sdcard这是 ...

  6. miui8删除应用商店不卡米

    本贴内容是miui7~8删除应用商店不卡米教程!以前的教程距现在也有很长的时间!我只是根据我所理解的,再次讲述一个方法,过程!我承认此贴基于" http://bbs.mydigit.cn/r ...

  7. oracle 删除表存过,oracle删除数据库中已存在表的实例代码

    摘要 腾兴网为您分享:oracle删除数据库中已存在表的实例代码,长沙银行,银万财富,图钉,听中国等软件知识,以及土豆app,局域网文件,宝宝学动物,观海听涛bbs,育碧,生男生女预测大师,新先视,信 ...

  8. 代码随想录算法训练Day11 LeetCode232. 用栈实现队列(模拟);225.用队列实现栈(模拟);20. 有效的括号(栈应用);1047. 删除字符串中的所有相邻重复项(栈应用)

    代码随想录算法训练Day11 | LeetCode232. 用栈实现队列(模拟):225.用队列实现栈(模拟):20. 有效的括号(栈应用):1047. 删除字符串中的所有相邻重复项(栈应用) 关于栈 ...

  9. python处理千万级数据_Python批量删除mysql中千万级大量数据的脚本分享

    场景描述 线上Mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200G,最后问了运营,可以只保留最近3天的,前面的数据,只 ...

最新文章

  1. java面试必备小知识_Java面试应该准备的知识点系列一
  2. bzoj2339[HNOI2011]卡农 dp+容斥
  3. 基于FFmpeg和Android的音视频同步播放实现
  4. 【opencv】VideoCapture打不开本地视频文件或者网络IP摄像头
  5. 在 node.js 的 express web 框架中自动注册路由
  6. java向上转型不能调用子类独有的方法
  7. 一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流...
  8. Mac OS X安装 ffmpeg
  9. 昌吉学院2017年计算机招生,昌吉学院
  10. 如何使用SqlLoader导入数据
  11. 中国传统节日端午节网页HTML代码 学生网页课程设计期末作业下载 春节大学生网页设计制作成品下载 DW春节节日网页作业代码下载
  12. 当电脑接双屏扩展显示器时,系统崩溃,QQ浏览器出现显示异常,通过如下方法使之正常
  13. 统计学贾俊平第六版pdf下载|贾俊平统计学第六版pdf下载电子书
  14. 迅捷路由器重新设置后服务器无响应,迅捷路由器恢复出厂设置后怎么重新设置...
  15. 苹果cms修改服务器,购买m1938工作室制作的苹果cms模板如何安装修改苹果cms页面说明...
  16. 企业邮箱注册申请,如何注册电子邮箱域名
  17. 如何使用“MRT”恶意软件删除工具
  18. 【control】微分平坦(Differential Flatness)
  19. ArcGIS导出为PDF时汉字乱码,汉字变为方框
  20. [JS权威指南笔记] 第1章-第3章

热门文章

  1. html5按钮自动特效,HTML5 svg和CSS3 22种炫酷鼠标点击按钮特效
  2. 【Python习题】面向对象的人机猜拳小游戏
  3. mysql有高水位线吗_Oracle中高水位线(HWM)
  4. 创业公司 如果让你作技术负责人,你会如何从0搭建公司后端技术栈
  5. Super Yolo论文翻译
  6. Word中添加图表目录
  7. JavaScript判断奇偶数的两种方法
  8. 锦天科技被盛大收购了
  9. ADS8688驱动(FPGA)
  10. 2014 10 07 ················男人感悟100(转自MOP)