当前位置: 首页 > news >正文

k8s的namespace一直处于terminating的解法

先试了强制替换,无法替换掉,强制删除,也删除不掉namespace

[root@master k8s-study]# vi ns-demo.yaml
[root@master k8s-study]# kubectl create -f ns-demo.yaml
namespace/demo created
[root@master k8s-study]# kubectl get -f ns-demo.yaml
NAME   STATUS   AGE
demo   Active   17s
[root@master k8s-study]# cp ns-demo.yaml ns-demo-v2.yaml
[root@master k8s-study]# vi ns-demo-v2.yaml
[root@master k8s-study]# kubectl replace -f ns-demo-v2.yaml
namespace/demo replaced
[root@master k8s-study]# kubectl get -f ns-demo.yaml
NAME   STATUS   AGE
demo   Active   102s
[root@master k8s-study]# kubectl get -f ns-demo.yaml -o yaml
apiVersion: v1
kind: Namespace
metadata:creationTimestamp: "2023-07-26T13:22:49Z"labels:kubernetes.io/metadata.name: demoname: demoresourceVersion: "42052444"uid: 5ff91497-0bb6-448a-8fb2-0aacb017bacc
spec:finalizers:- kubernetes
status:phase: Active
[root@master k8s-study]# kubectl get -f ns-demo-v2.yaml -o yaml
apiVersion: v1
kind: Namespace
metadata:creationTimestamp: "2023-07-26T13:22:49Z"labels:kubernetes.io/metadata.name: demoname: demoresourceVersion: "42052444"uid: 5ff91497-0bb6-448a-8fb2-0aacb017bacc
spec:finalizers:- kubernetes
status:phase: Active
[root@master k8s-study]# kubectl replace --force -f ns-demo-v2.yaml
namespace "demo" deleted^C
[root@master k8s-study]# kubectl replace --force=true -f ns-demo-v2.yaml
namespace "demo" deleted
^C
[root@master k8s-study]# kubectl replace --force=true --grace-period=0 -f ns-demo-v2.yaml
namespace "demo" deleted
^C
[root@master k8s-study]# kubectl get ns/demo
NAME   STATUS        AGE
demo   Terminating   10m
[root@master k8s-study]# kubectl get ns/demo -o json
{"apiVersion": "v1","kind": "Namespace","metadata": {"creationTimestamp": "2023-07-26T13:22:49Z","deletionTimestamp": "2023-07-26T13:25:24Z","labels": {"kubernetes.io/metadata.name": "demo"},"name": "demo","resourceVersion": "42052458","uid": "5ff91497-0bb6-448a-8fb2-0aacb017bacc"},"spec": {"finalizers": ["kubernetes"]},"status": {"phase": "Terminating"}
}
[root@master k8s-study]# kubectl edit ns/demo -o yaml
apiVersion: v1
kind: Namespace
metadata:creationTimestamp: "2023-07-26T13:22:49Z"deletionTimestamp: "2023-07-26T13:25:24Z"labels:kubernetes.io/metadata.name: demoname: demoresourceVersion: "42052458"uid: 5ff91497-0bb6-448a-8fb2-0aacb017bacc
spec:finalizers:- kubernetes
status:phase: Terminating
[root@master k8s-study]# kubectl get ns/demo
NAME   STATUS        AGE
demo   Terminating   11m
[root@master k8s-study]# kubectl delete ns/demo
namespace "demo" deleted
^C
[root@master k8s-study]# kubectl delete --force ns/demo
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 "demo" force deleted
^C
[root@master k8s-study]# kubectl delete --force --grace-period=0 ns/demo
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 "demo" force deleted
^C[root@master k8s-study]# curl -H "Content-Type: application/json" -XPUT -d '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"demo"},"spec":{"finalizers":[]}}' http://localhost:10249/api/v1/namespaces/delete-me/finalize
404 page not found
[root@master k8s-study]# curl -H "Content-Type: application/json" -XPUT -d '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"demo"},"spec":{"finalizers":[]}}' http://localhost:31811/api/v1/namespaces/delete-me/finalize
curl: (52) Empty reply from server
[root@master k8s-study]# kubectl get ns/demo -o yaml
apiVersion: v1
kind: Namespace
metadata:creationTimestamp: "2023-07-26T13:22:49Z"deletionTimestamp: "2023-07-26T13:25:24Z"labels:kubernetes.io/metadata.name: demoname: demoresourceVersion: "42052458"uid: 5ff91497-0bb6-448a-8fb2-0aacb017bacc
spec:finalizers:- kubernetes
status:phase: Terminating
[root@master k8s-study]# kubectl get ns/demo -o json
{"apiVersion": "v1","kind": "Namespace","metadata": {"creationTimestamp": "2023-07-26T13:22:49Z","deletionTimestamp": "2023-07-26T13:25:24Z","labels": {"kubernetes.io/metadata.name": "demo"},"name": "demo","resourceVersion": "42052458","uid": "5ff91497-0bb6-448a-8fb2-0aacb017bacc"},"spec": {"finalizers": ["kubernetes"]},"status": {"phase": "Terminating"}
}
[root@master k8s-study]# curl -H "Content-Type: application/json" -XPUT -d '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"demo"},"spec":{"finalizers":[]}}' http://localhost:31811/api/v1/namespaces/demo/finalize
curl: (52) Empty reply from server
[root@master k8s-study]# curl -H "Content-Type: application/json" -H “Expect:” -XPUT -d '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"demo"},"spec":{"finalizers":[]}}' http://localhost:31811/api/v1/namespaces/demo/finalize
curl: (52) Empty reply from server
[root@master k8s-study]# curl -H "Content-Type: application/json" -XPUT -d '{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"demo"},"spec":{"finalizers":[]}}' http://localhost:10249/api/v1/namespaces/demo/finalize
404 page not found

NAMESPACE=demo
kubectl get ns $NAMESPACE -o json | jq '.spec.finalizers=[]' > ns.json
kubectl proxy --port=8899 &
PID=$!
curl -X PUT http://localhost:8899/api/v1/namespaces/$NAMESPACE/finalize -H "Content-Type: application/json" --data-binary @ns.json
kill $PID

这段代码的含义是在 Kubernetes 环境中删除一个命名空间(Namespace)及其关联的资源,包括在命名空间中运行的所有容器、服务、持久卷等。让我们逐行解释代码的作用:

  1. NAMESPACE=demo 这一行指定了要删除的命名空间的名称,代码中将其设置为 "demo"。你可以根据需要将 "demo" 替换为你要删除的特定命名空间的名称。

  2. kubectl get ns $NAMESPACE -o json | jq '.spec.finalizers=[]' > ns.json 这一行代码使用 kubectl 命令获取指定命名空间的详细信息,并将其以 JSON 格式输出。然后通过 jq 工具(一个命令行 JSON 处理工具)将 .spec.finalizers 的值设置为空数组,这样做的目的是将命名空间中的 finalizer 清空。finalizer 是用于在删除命名空间时执行清理操作的机制。

  3. kubectl proxy --port=8899 & 这一行代码启动了一个 kubectl 代理服务器,并监听在本地的 8899 端口上。代理服务器的目的是允许后续的 curl 请求与 Kubernetes API 进行交互,从而绕过直接与集群通信的需求。

  4. PID=$! 这一行代码将 kubectl 代理服务器的进程 ID 存储在变量 PID 中。这样做是为了在后续操作中能够终止该进程,以便清理代理服务器。

  5. curl -X PUT http://localhost:8899/api/v1/namespaces/$NAMESPACE/finalize -H "Content-Type: application/json" --data-binary @ns.json 这一行代码使用 curl 命令向 Kubernetes API 发出 PUT 请求,调用命名空间的 finalize 操作。在这个请求中,通过将之前生成的 ns.json 文件的内容作为请求体,来执行对命名空间的最终清理。由于之前已经将 finalizer 清空,这个操作将立即删除命名空间和其所有资源。

  6. kill $PID 最后,这一行代码终止之前启动的 kubectl 代理服务器,释放占用的端口和资源。

需要注意的是,这段代码执行时需要确保当前的环境配置有足够的权限来删除命名空间及其资源,否则可能会失败。同时,谨慎使用这样的代码,因为删除命名空间将导致其中的所有资源永久丢失,无法恢复。在生产环境中,务必谨慎执行类似的操作,并确认执行之前的后果。

相关文章:

k8s的namespace一直处于terminating的解法

先试了强制替换,无法替换掉,强制删除,也删除不掉namespace [rootmaster k8s-study]# vi ns-demo.yaml [rootmaster k8s-study]# kubectl create -f ns-demo.yaml namespace/demo created [rootmaster k8s-study]# kubectl get -f ns-demo.ya…...

JAVA面试总结-Redis篇章(六)——数据过期策略

Java面试总结-Redis篇章(六)——数据过期策略 Redis数据删除策略——惰性删除Redis数据删除策略——定期删除 Redis数据删除策略——惰性删除 Redis数据删除策略——定期删除...

【LLM】大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model

大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model 快速了解预训练预训练模型评估微调有监督微调(SFT)人类反馈的强化学习(RLHF)RLHF结果局限性安全性预训练的安全性安全微调上手就干使用登记代码下载获取模型转换模型搭建Text-Generation-WebUI分发模型…...

Android是如何识别USB信号的

Android设备通过USB接口与外部设备通信时,会通过USB控制器(USB Controller)与USB设备进行通信。USB控制器是Android设备的一个硬件组件,它负责管理USB总线并控制所有USB设备的连接和通信。 当一个USB设备被插入Android设备的USB接…...

机器学习前言

1.机器学习和统计学关系 2.机器学习的发展 3.机器学习与深度学习的相同点与不同点 4.机器学习和深度学习优缺点 一、机器学习和统计学关系 机器学习和统计学密切相关,可以说机器学习是统计学在计算机科学和人工智能领域的应用。机器学习和统计学在方法论和技术上有…...

Java另一种debug方法(not remote jmv debug),类似python远程debug方式

这种Debug类似python的debug方式,是运行时将业务代码及依赖推送到Linux并使用Linux的java运行运行程。只要本地能运行,就能自动将代码推送到Linux运行,不需打包及设置远程debug jvm参数,适合一些项目Debug调试 运行时会推送一些依…...

【QT】Day4

1> 思维导图 2> 手动完成服务器的实现&#xff0c;并具体程序要注释清楚 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器类 #include <QTcpSocket> //客户端类 #include <QMessageBox> //…...

在CSDN学Golang云原生(Kubernetes Pod 有状态部署)

一&#xff0c;StatefulSet部署MongoDB集群 Kubernetes StatefulSet 是 Kubernetes 中的一种资源类型&#xff0c;它能够保证有状态服务&#xff08;Stateful Service&#xff09;的唯一性和顺序部署&#xff0c;适用于需要持久化存储、网络标识、状态管理等场景。MongoDB 是一…...

sql-从一个或多个表中向一个表中插入 多行

INSERT还可以将SELECT语句查询的结果插入到表中&#xff0c;此时不需要把每一条记录的值一个一个输入&#xff0c;只需 要使用一条INSERT语句和一条SELECT语句组成的组合语句即可快速地从一个或多个表中向一个表中插入 多行。 基本语法格式如下&#xff1a; INSERT INTO 目标表…...

ElementUI 实现动态表单数据校验(已解决)

文章目录 &#x1f34b;前言&#xff1a;&#x1f34d;正文1、探讨需求2、查阅相关文档&#xff08;[element官网](https://element.eleme.cn/#/zh-CN/component/form)&#xff09;官方动态增减表单项示例3、需求完美解决4、注意事项 &#x1f383;专栏分享&#xff1a; &#…...

Linux上定位线上CPU飙高

【模拟场景】 写一个java main函数&#xff0c;死循环打印 System.out.println(“111111”) &#xff0c; 将其打成jar包放在linux中执行 1、通过TOP命令找到CPU耗用最厉害的那个进程的PID 2、top -H -p 进程PID 找到进程下的所有线程 可以看到 pid 为 94384的线程耗用cpu …...

06-行向量列向量_向量的运算 加法,数乘,减法,转置

行向量和列向量 行向量是按行把向量排开&#xff08;横着来写&#xff09;&#xff0c; 列向量是按列把向量排开&#xff08;竖着来写&#xff09; 在数学中我们更多的把数据写成列向量&#xff0c;在编程语言中更多的把数据存成行向量! 如果想在编程语言中把行向量转化成列…...

基于Matlab实现最大类间方差阈值与遗传算法的道路分割(附上完整源码+图像+程序运行说明)

道路分割是计算机视觉和图像处理中的一个重要任务&#xff0c;它在交通监控、自动驾驶和地图制作等领域具有广泛的应用。其中&#xff0c;最大类间方差阈值和遗传算法是道路分割中常用的方法之一。本文将介绍如何使用Matlab实现最大类间方差阈值与遗传算法进行道路分割。 文章目…...

13.4.2 【Linux】sudo

相对于 su 需要了解新切换的使用者密码 &#xff08;常常是需要 root 的密码&#xff09;&#xff0c; sudo 的执行则仅需要自己的密码即可。sudo 可以让你以其他用户的身份执行指令 &#xff08;通常是使用 root 的身份来执行指令&#xff09;&#xff0c;因此并非所有人都能够…...

电脑软件:键盘按键修改器——keytweak使用介绍

对你的电脑键盘的布局不满意、键盘上的某个按键坏掉了等等键盘问题如何解决&#xff1f;有了KeyTweak这一切就可以轻松解决了&#xff0c;KeyTweak是一个免费软件程序&#xff0c;使用它可让你重新映射键盘键。如果您改变主意并想将其改回原样&#xff0c;只需点击一下即可容易…...

软件工程学术顶会——ICSE 2023 议题(网络安全方向)清单与摘要

按语&#xff1a;IEEE/ACM ICSE全称International Conference on Software Engineering&#xff0c;是软件工程领域公认的旗舰学术会议&#xff0c;中国计算机学会推荐的A类国际学术会议&#xff0c;Core Conference Ranking A*类会议&#xff0c;H5指数74&#xff0c;Impact s…...

【Python】jupyter Linux服务器使用

文章目录 环境使用访问 环境 pip install jupyter 使用 在你想访问的目录下执行&#xff1a; jupyter notebook --ip0.0.0.0jupyter 给出提示&#xff1a; [I 2023-07-28 14:32:43.589 ServerApp] Package notebook took 0.0000s to import [I 2023-07-28 14:32:43.597 Ser…...

element 级联 父传子

html代码例子 父组件 <el-cascaderstyle"width: 100%"change"unitIdChange":options"unitOptions"filterablev-model"formInline.unitId":props"unitProps"/></el-form-item>//改变级联传值到这个组件里面<r…...

【MTI 6.S081 Lab】Copy-on-write

【MTI 6.S081 Lab】Copy-on-write The problemThe solutionImplement copy-on-write fork (hard)实验任务Hints解决方案问题解决思考uvmcopykfreekallockpagerefcow_handlertrap 虚拟内存提供了一定程度的间接性&#xff1a;内核可以通过将PTE标记为无效或只读来拦截内存引用&a…...

【GO】go语言入门实战 —— 命令行在线词典

文章目录 程序介绍抓包代码生成生成request body解析respond body完整代码 字节青训营基础班学习记录。 程序介绍 在运行程序的时候以命令行的形式输入要查询的单词&#xff0c;然后程序返回单词的音标、释义等信息。 示例如下&#xff1a; 抓包 我们选择与网站https://fany…...

安卓梦幻互通专用多开切换器|回合制手游多账号快速切换工具(附详细图文教程)

温馨提示&#xff1a;文末有联系方式工具核心定位&#xff1a;安全纯净&#xff0c;专注高效切换 本工具为专为安卓平台设计的轻量级多账号切换解决方案&#xff0c;全程绿色免安装插件&#xff0c;界面无任何广告干扰&#xff0c;严格遵循隐私规范——不访问、不读取、不上传任…...

告别内置数据库:NocoBase企业级部署为何推荐外接MySQL?实战配置详解

企业级NocoBase部署&#xff1a;为什么外接MySQL是必选项&#xff1f; 当技术团队从原型验证转向生产环境部署时&#xff0c;数据库选型往往成为第一个关键决策点。NocoBase作为企业级无代码平台&#xff0c;虽然内置了开箱即用的SQLite数据库&#xff0c;但在真实业务场景中&a…...

比话降AI和嘎嘎降AI哪个好知网用户怎么选

比话降AI和嘎嘎降AI是2026年降AI率工具里被讨论最多的两款。两款都有真实用户实测数据&#xff0c;都有退款保障&#xff0c;都不是"交学费型"的工具。 但它们不一样&#xff0c;适合不同的人。 这篇文章专门从知网用户的角度来对比&#xff0c;说清楚什么情况选比…...

深度解析 Claude Code v2.1.88 源码:技术栈与底层实现全揭秘(基于流出架构资料)

深度解析 Claude Code v2.1.88 源码:技术栈与底层实现全揭秘(基于流出架构资料) 摘要:2026年3月31日,Claude Code v2.1.88 相关技术资料(含TypeScript工程架构、核心模块实现逻辑,合计51.2万行代码量级)公开流出,包含其核心架构、工具系统、安全机制等全部实现细节。…...

2026届最火的AI辅助写作平台解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 一种基于自然语言处理以及深度学习模型的论文一键生成技术&#xff0c;其中&#xff0c;该技…...

终极指南:如何在Windows上安装和使用FlipIt翻页时钟屏保

终极指南&#xff1a;如何在Windows上安装和使用FlipIt翻页时钟屏保 【免费下载链接】FlipIt Flip Clock screensaver 项目地址: https://gitcode.com/gh_mirrors/fl/FlipIt 想要为你的Windows电脑增添一抹复古优雅的时间艺术吗&#xff1f;FlipIt翻页时钟屏保正是你需要…...

零基础学linux:借助快马ai生成你的第一份命令手册与实战练习脚本

作为一个从图形界面转战Linux命令行的过来人&#xff0c;我完全理解新手面对黑底白字终端时的茫然感。最近在InsCode(快马)平台尝试用AI辅助学习时&#xff0c;发现它特别适合解决这个痛点——不仅能生成清晰易懂的命令手册&#xff0c;还能创建可交互的练习脚本&#xff0c;就…...

从宇宙到地面:解析ICRS、GCRS、CIRS、TIRS和ITRS坐标系统的层级关系与应用场景

1. 从宇宙到地球&#xff1a;坐标系统的层级关系 想象一下你站在夜晚的旷野中仰望星空。那些闪烁的星星看似固定不动&#xff0c;但实际上它们的精确位置需要用一套复杂的坐标系统来描述。从天文学研究到日常导航&#xff0c;不同的坐标系统就像一套精密的俄罗斯套娃&#xff0…...

IM1281B电量计模块避坑指南:从接线到数据解析的全流程实战

IM1281B电量计模块实战全解析&#xff1a;从硬件对接到数据处理的完整解决方案 在智能电表、能耗监测和物联网设备开发中&#xff0c;精确测量电能消耗是核心需求之一。IM1281B作为一款高性价比的单相电能计量模块&#xff0c;以其Modbus通信协议和直接电能脉冲输出功能&#x…...

Qwen3-14B私有部署商业应用:替代SaaS服务降本提效的真实测算

Qwen3-14B私有部署商业应用&#xff1a;替代SaaS服务降本提效的真实测算 1. 私有部署的商业价值 在当今企业数字化转型浪潮中&#xff0c;大语言模型的应用已经成为提升效率的关键工具。然而&#xff0c;依赖第三方SaaS服务不仅成本高昂&#xff0c;还存在数据安全和响应速度…...