首页 > 其他分享 >如何更新Terminating状态的命名空间

如何更新Terminating状态的命名空间

时间:2024-07-09 14:42:47浏览次数:11  
标签:kubectl rdbms 删除 更新 空间 Terminating 命名

Kubernetes中namespace有两种常见的状态,即Active和Terminating状态,其中Terminating状态一般会比较少见,当对应的命名空间下还存在运行的资源,但该命名空间被删除时才会出现所谓的Terminating状态,这种情况下只要等待Kubernetes本身将命名空间下的资源回收后,该命名空间将会被系统自动删除。

但是在某些情况下,即使命名空间下没有运行的资源,但依然无法删除Terminating状态的命名空间的情况,它会一直卡在Terminating状态下。

解决这个问题的步骤为:

  1. 查看命名空间详情

    $ kubectl  get ns  | grep rdb
    rdbms                  Terminating   6d21h
    
    $ kubectl  get ns rdbms -o yaml
    apiVersion: v1
    kind: Namespace
    metadata:
      annotations:
        kubectl.kubernetes.io/last-applied-configuration: |
          {"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"rdbms"}}
      creationTimestamp: "2020-05-07T15:19:43Z"
      deletionTimestamp: "2020-05-07T15:33:23Z"
      name: rdbms
      resourceVersion: "84553454"
      selfLink: /api/v1/namespaces/rdbms
      uid: 457788ddf-53d7-4hde-afa3-1fertg21ewe1
    spec:
      finalizers:
      - kubernetes
    status:
      phase: Terminating
    
     
  2. 查看该命名空间下的资源

    # 查看集群中可以使用命名空间隔离的资源
    $ kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n rdbms
    
     

    发现rdbms命名空间下并无资源占用。

  3. 尝试对命名空间进行删除

    直接删除命名空间rdbms

    $ kubectl  delete ns rdbms
    Error from server (Conflict): Operation cannot be fulfilled on namespaces "rdbms": The system is ensuring all content is removed from this namespace.  Upon completion, this namespace will automatically be purged by the system.
    
     

    提示删除操作未能完成,说系统会在确定没用资源后将会被自动删除。

  4. 使用强制删除

    $ kubectl  delete ns rdbms --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.
    Error from server (Conflict): Operation cannot be fulfilled on namespaces "rdbms": The system is ensuring all content is removed from this namespace.  Upon completion, this namespace will automatically be purged by the system.
    
     

    依然无法删除该命名空间。

  5. 但是大部分时候,这些资源也杀不掉,解决办法是使用原生接口删除

    获取namespace的详情信息

    $ kubectl  get ns rdbms  -o json > rdbms.json
    
     

    查看namespace定义的json配置,编辑json文件并删除掉spec部分。

    $ cat rdbms.json
    {
        "apiVersion": "v1",
        "kind": "Namespace",
        "metadata": {
            "annotations": {
                "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Namespace\",\"metadata\":{\"annotations\":{},\"name\":\"rdbms\"}}\n"
            },
            "creationTimestamp": "2019-10-14T12:17:44Z",
            "deletionTimestamp": "2019-10-14T12:30:27Z",
            "name": "rdbms",
            "resourceVersion": "8844754",
            "selfLink": "/api/v1/namespaces/rdbms",
            "uid": "29067ddf-56d7-4cce-afa3-1fbdbb221ab1"
        },
        "spec": {
            "finalizers": [
                "kubernetes"
            ]
        },
        "status": {
            "phase": "Terminating"
        }
    }
    
     

    执行接口PUT请求更新后,命名空间将自动删除。

    kubectl replace --raw "/api/v1/namespaces/<YOUR_NAMESPACE>/finalize" -f ./<YOUR_NAMESPACE>.json
    
     

    如果仍然无法删除命名空间,请查看metadata部分是否存在finalizers字段,如果存在,需要通过如下命令进入命名空间后删除该字段:

    kubectl edit ns rdbms
    
     

tips: 我个人一般直接使用步骤5

 

标签:kubectl,rdbms,删除,更新,空间,Terminating,命名
From: https://www.cnblogs.com/david-cloud/p/18291816

相关文章

  • mysql 误更新记录恢复 update更新字段值恢复 mysql数据库更新字段值恢复
    近日极佳mysql数据库恢复软件加入mysql的 update更新字段值的恢复例如 updatejnx_clean_ordersetno='qwertyuiop'将 jnx_clean_order 表的 no字段值 全部变成了 qwertyuiop  这种情况 1可以从 mysqlbin 日志恢复, 如果没有开启binlog 那就比较麻烦了。2......
  • 嵌入式C语言面试相关知识——CPU、进程和线程相关(相关问题很多,会经常过来更新)
    嵌入式C语言面试相关知识——CPU、进程和线程相关一、博客声明二、自问题目——CPU相关1、什么是中断?如何处理中断?2、解释上下文切换(ContextSwitch)?3、在嵌入式中如何优化CPU使用?三、自问题目——进程相关1、什么是进程?2、嵌入式系统中进程和线程的区别是什么?3、在嵌......
  • 社区6月月报 | Apache SeaTunnel重要更新与优化记录
    各位热爱ApacheSeaTunnel的小伙伴们,社区6月份月报来啦!这里将记录ApacheSeaTunnel社区每月的重要更新,欢迎关注。月度MergeStars感谢以下小伙伴上个月为ApacheSeaTunnel所做的精彩贡献(排名不分先后):@baicie,@TaoZex,@loustler,@15810785091,@4chicat,@raboof,@Hisoka-X,@rtyu......
  • 常用 Docker 命令和配置指南 新手几乎够用 老手持续更新
    容器管理命令查看容器:查看所有已启动/未启动的容器:dockerps-a查看所有已启动的容器:dockerps启动和停止容器:启动容器:dockerstart容器ID停止容器:dockerstop容器ID重启容器:dockerrestart容器ID删除容器:删除容器:dockerrm容器ID镜像管理命令......
  • 【K8s】专题六(5):Kubernetes 稳定性之重启策略、滚动更新策略
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!目录一、重启策略1、基本介绍2、资源清单(示例)二、滚动更新策略1、基本介绍2、资源清单(示例)3、主要优点一、重启策略1、基本介绍重启策略(RestartPoli......
  • 如何删除顽疾Terminating状态的namespace
    删除Terminating状态的namespace  话不多说,开整获取nskubectlgetnsNAMESTATUSAGEarms-promActive16dcattle-impersonation-systemTerminating13ddefaultActive......
  • Apifox 6月更新|定时任务、内网自部署服务器运行接口定时导入、数据库 SSH 隧道连接
    Apifox新版本上线啦!!! 看看本次版本更新主要涵盖的重点内容,有没有你所关注的功能特性:自动化测试支持设置「定时任务」 支持内网自部署服务器运行「定时导入」数据库均支持通过SSH隧道连接自动化测试数据库操作优化 将Apifox更新至最新版,一起开启全新体验......
  • 开发人员常用工具与说明,后面不断更新
    开发人员常用工具软件与说明,后面不断更新idea代码开发jenkin代码部署发版docker容器管理(后台应用发布)git代码提交管理pinpoint代码性能管理工具Grafana指标监控(可以根据你写的sql监控显示统一管理)zookeeper分布式应用程序协调服务Elasticsearch日志管理red......
  • 关于Windows防火墙的漏洞,具体信息可能随着时间和操作系统版本的更新而变化。以下是一
    Windows防火墙,特别是WindowsDefender防火墙,是Windows操作系统中用于保护计算机免受网络攻击的关键组件。然而,像任何其他安全系统一样,Windows防火墙也可能存在漏洞或安全问题。以下是一些可能涉及Windows防火墙的具体漏洞或安全问题的讨论:1.默认配置和设置不当默认设置不安全:W......
  • 计算机组成原理复习与预习指南~持续更新~
    计算机组成原理是计算机科学领域的基石,理解它不仅能帮助你更好地掌握计算机的工作原理,还能为你在编程、系统设计和性能优化方面提供强大的理论支持。本文将带你深入探索计算机的组成,从CPU、存储器到系统总线和I/O系统,全面解析各个部分的工作原理和实际应用。同时,我们也会结......