k8s强制删除处于Terminating状态的namespace

这篇具有很好参考价值的文章主要介绍了k8s强制删除处于Terminating状态的namespace。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、问题背景

        按照kubord官方文档安装删除Kuboard之后,再重新执行kubectl apply时,出现Error from server (Forbidden): error when creating "https://addons.kuboard.cn/kuboard/kuboard-v3-swr.yaml": configmaps "kuboard-v3-config" is forbidden: unable to create new content in namespace kuboard because it is being terminated报错。

k8s强制删除处于Terminating状态的namespace

 二、排查过程

       根据报错显示unable to create new content in namespace kuboard because it is being terminated:大致意思时kuboard命名空间正在销毁,所以无法创建。

        手动排查使用kubectl get ns,发现果然有一个状态为Terminating的kuboard。

k8s强制删除处于Terminating状态的namespace

         使用delete删除这个命名空间,发现强制也无法删除卡在这个状态,无奈Ctrl+C停止。

[root@master ~]# kubectl delete ns kuboard
namespace "kuboard" deleted
^C
[root@master ~]# kubectl delete ns kuboard --force --grace-period=0
warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
namespace "kuboard" force deleted
^C

三、解决方法

  1. 运行以下命令以查看处于“Terminating”状态的namespace:
    kubectl get namespaces
  2. 选择一个Terminating namespace,并查看namespace 中的finalizer。运行以下命令:
    kubectl get namespace <terminating-namespace> -o yaml

    输出信息如下:

    apiVersion: v1
    kind: Namespace
    metadata:
      creationTimestamp: "2019-11-20T15:18:06Z"
      deletionTimestamp: "2020-01-16T02:50:02Z"
      name: <terminating-namespace>
      resourceVersion: "3249493"
      selfLink: /api/v1/namespaces/knative-eventing
      uid: f300ea38-c8c2-4653-b432-b66103e412db
    spec:
      finalizers:
      - kubernetes
    status:
  3. 导出json格式到文件
    kubectl get namespace <terminating-namespace> -o json >tmp.json
  4. 编辑tmp.josn,删除finalizers 字段的值
    {
      "apiVersion": "v1",
      "kind": "Namespace",
      "metadata": {
        "creationTimestamp": "2019-11-20T15:18:06Z",
        "deletionTimestamp": "2020-01-16T02:50:02Z",
        "name": "<terminating-namespace>",
        "resourceVersion": "3249493",
        "selfLink": "/api/v1/namespaces/knative-eventing",
        "uid": "f300ea38-c8c2-4653-b432-b66103e412db"
      },
      "spec": {    #从此行开始删除
        "finalizers": []
      },   # 删到此行
      "status": {
        "phase": "Terminating"
      }
    }
  5. 开启proxy
    kubectl proxy

    执行该命令后,当前终端会被卡住

  6. 打开新的一个窗口,执行以下命令
    curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8001/api/v1/namespaces/<terminating-namespace>/finalize

    输出信息如下:文章来源地址https://www.toymoban.com/news/detail-447097.html

    {
      "kind": "Namespace",
      "apiVersion": "v1",
      "metadata": {
        "name": "istio-system",
        "selfLink": "/api/v1/namespaces/istio-system/finalize",
        "uid": "2e274537-727f-4a8f-ae8c-397473ed619a",
        "resourceVersion": "3249492",
        "creationTimestamp": "2019-11-20T15:18:06Z",
        "deletionTimestamp": "2020-01-16T02:50:02Z"
      },
      "spec": {
        
      },
      "status": {
        "phase": "Terminating"
      }
    }
  7. 确认处于Terminating 状态的namespace已经被删除
    kubectl get namespaces

    如果还有处于Terminating 状态的namespace,重复以上操作,删除即可!

到了这里,关于k8s强制删除处于Terminating状态的namespace的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s delete namespace Terminating

    版本情况 当时Terminating截图 前段时间pod的数量增加,怀疑是master节点机器资源不足导致处理效率问题 目前运行的pod数量 查看Prometheus监控,可以看到master节点的使用率都很低,排除资源不足问题 执行查看资源情况, 没有发现依赖资源未释放情况,排查依赖资源没有释放问题

    2024年02月10日
    浏览(25)
  • k8s pod 处于Terminating的原因分析和解决处理——筑梦之路

    之前整理了一下各种资源长时间无法回收,解决处理的命令行 k8s 各种资源Terminationg状态处理 —— 筑梦之路_k8s自定义资源修改状态-CSDN博客 这里具体整理下pod长时间处于Terminating状态的相关知识,主要是对前面的补充和完善,作为笔记记录。 当我们要删除一个Pod时,Kuberne

    2024年02月03日
    浏览(24)
  • 云原生 | k8s批量删除Evicted/Terminating/Unknown Pods

    宿主机内存被docker占满导致,K8s集群pod处于Evicted 状态,清理内存后处理Evicted和Terminating状态的pod 1、在集群查询pod状态,发现大量pod处于Evicted和Terminating状态 2.使用kubectl中的强制删除命令 3.删除非正常的pod  

    2024年02月08日
    浏览(28)
  • k8s 大量 pod 处于 ContainerStatusUnknown 状态

    如图所示,nexus 正常运行,但产生了大量的状态不明的 pod,原因也无从所知 解决办法,删除多余的 pod,一个一个删除,非常费劲 获取 namespace 中状态为 ContainerStatusUnknown 的 pod,并删除 获取所有非 Running 状态下的 pod,并删除

    2024年02月07日
    浏览(40)
  • K8S集群中Pod资源处于CrashLoopBackOff状态排查思路

    CrashLoopBackOff状态一般都是Pod资源中的容器出现了问题,可以有以下几点原因: 容器中部署的程序存在Bug,无法正常启动,就会出现此状态,可以查询容器的启动日志,从日志中获取重要线索,逐个进行排查。 定义Pod资源时,对于Pod中的容器进行了资源限额,可能限额的资源

    2024年01月21日
    浏览(31)
  • K8S集群中Pod资源处于ImagePullBackOff状态排查思路

    ImagePullBackOff状态表示容器的镜像拉取失败,可能存在以下几点原因: 拉取镜像时间较长导致超时,从而导致镜像拉取失败,部署完Docker后,一定要添加上阿里云的镜像加速器,否则拉取镜像是非常慢的,很容易就会导致镜像拉取失败。 镜像配置有误,指定的镜像在公有仓库

    2024年02月14日
    浏览(30)
  • 强制删除k8s命名空间

    背景 删除ns时,有时候会一直卡在terminating的状态,无法删除,此时会引发一些问题,所以试了两种方法,记录下来 假定ns名称为test 方法一 通过强制删除,并且设置优雅删除时间为0(默认为30s) $ kubectl delete ns test --force --grace-period=0 方法一之后还是无法删除,请使用方法二

    2024年02月04日
    浏览(24)
  • k8s pod一直处于pending状态一般有哪些情况,怎么排查?

    一个pod一开始创建的时候,它本身就是会处于pending状态,这时可能是正在拉取镜像,正在创建容器的过程。 如果等了一会发现pod一直处于pending状态, 那么我们可以使用kubectl describe命令查看一下pod的Events详细信息。一般可能会有这么几种情况导致pod一直处于pending状态: 1、

    2024年01月17日
    浏览(42)
  • k8s中强制删除pv

    K8s 集群内有一个已经不再使用的 PV,虽然已经删除了与其关联的 Pod 及 PVC,并对其执行了删除命令,但仍无法正常删除,一直处于 Terminating 状态:  解决办法: 1. 获取pv信息  2. 解除pv锁定  3. 解除pvc锁定 4. 【如果还没删掉】删除PV 5. 【如果还没删掉】删除PVC

    2024年02月15日
    浏览(43)
  • k8s中强制删除pod方法

    删除pod的时候发现 pod 一直处于 terminating 状态,而且使用 delete 命令删除的时候一直会卡的没反应。 可以使用强制删除的方法解决: 筛选出集群中状态是 Terminating 的 pod,随后进行删除 如果依旧无法解决,可以从ETCD中删除源数据

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包