OpenShift 4 - 如何删除Terminating状态的项目
《OpenShift 4.x HOL教程汇总》
- 创建模拟项目。
$ oc new-project finalizer-example
- 创建内容如下的test-secret.yaml文件,其中定义了一个Secret类型的对象。
apiVersion: v1
kind: Secret
metadata:name: test-secretfinalizers:- kubernetes.io/finalizer-example
stringData:sensitiveKey: sensitiveValue
- 创建Secret对象。
$ oc create -f test-secret.yaml
- 删除finalizer-example项目,返回项目被删。
$ oc delete namespace finalizer-example --wait=false
namespace "finalizer-example" deleted
- 不过查看finalizer-example项目状态,此时项目还处于“Terminating”状态。
$ oc get namespace finalizer-example
NAME STATUS AGE
finalizer-example Terminating 15m
- 查看项目的当前详细情况。从’Some resources are remaining: secrets. has 1 resource instances’的提示可确认是由于项目中还有一个secret,所以项目无法被删除掉。
$ oc get namespace finalizer-example -o yaml
apiVersion: v1
kind: Namespace。
。。。
spec: finalizers: -- kubernetes
status: conditions: -- lastTransitionTime: "2020-08-21T14:50:49Z" message: All resources successfully discovered reason: ResourcesDiscovered status: "False" type: NamespaceDeletionDiscoveryFailure -- lastTransitionTime: "2020-08-21T14:50:49Z" message: All legacy kube types successfully parsed reason: ParsedGroupVersions status: "False" type: NamespaceDeletionGroupVersionParsingFailure -- lastTransitionTime: "2020-08-21T14:50:49Z" message: All content successfully deleted, may be waiting on finalization reason: ContentDeleted status: "False" type: NamespaceDeletionContentFailure -- lastTransitionTime: "2020-08-21T14:50:49Z" message: 'Some resources are remaining: secrets. has 1 resource instances' reason: SomeResourcesRemain status: "True" type: NamespaceContentRemaining -- lastTransitionTime: "2020-08-21T14:50:49Z" message: 'Some content in the namespace has finalizers remaining: kubernetes.io/finalizer-example in 1 resource instances' reason: SomeFinalizersRemain status: "True" type: NamespaceFinalizersRemaining phase: Terminating
- 查看finalizer-example项目中包括的所有对象向。我们可以看到除了test-secret对象外,还有很多其他隐含对象。
$ oc api-resources --verbs=list --namespaced -o name | xargs -n 1 oc get --show-kind --ignore-not-found -n finalizer-example
NAME TYPE DATA AGE
secret/test-secret Opaque 1 45s
NAME CATALOG AGE
packagemanifest.packages.operators.coreos.com/openshiftxray-operator Certified Operators 6d13h
packagemanifest.packages.operators.coreos.com/kong-offline-operator Certified Operators 6d13h
packagemanifest.packages.operators.coreos.com/argocd-operator Community Operators 6d13h
packagemanifest.packages.operators.coreos.com/jaeger-product Red Hat Operators 6d13h
...
- 由于所有对象都存放在Etcd中,因此我们可以进入运行Etcd的Pod中。
$ oc rsh -n openshift-etcd $(oc get pods -n openshift-etcd -o=jsonpath='{.items[0].metadata.name}')
Defaulting container name to etcdctl.
Use 'oc describe pod/etcd-ip-10-0-139-90.ap-southeast-1.compute.internal -n openshift-etcd' to see all of the containers in this pod.
- 查询Etcd中finalizer-example项目下的资源,确认查询到“test-secret”。
sh-4.2# for r in `etcdctl get / --prefix --keys-only | grep "^/.*/.*/finalizer-example/.*"`; do echo "Resource: '$(echo $r | cut -d"/" -f 3)' - Name: '$(echo $r | cut -d"/" -f 5)'"; done
Resource: 'secrets' - Name: 'test-secret'
- 手动删除test-secret对象中的finalizers中的内容。
$ oc patch secret test-secret -n finalizer-example -p '{"metadata":{"finalizers":[]}}' --type=merge
secret/test-secret patched
- 确认此时finalizer-example项目已经被删除掉。
$ oc get namespace finalizer-example
Error from server (NotFound): namespaces "finalizer-example" not found
- 如果finalizer-example项目还没有被删除,可以执行以下操作删除finalizer-example项目。
将finalizer-example项目配置导出文件。
$ oc get project finalizer-example -o json > finalizer-example.json
编辑finalizer-example.json文件,删除"finalizers"的内容。
{"apiVersion": "v1","kind": "Namespace","metadata": {..."name": "finalizer-example",...},"spec": {"finalizers": []},"status": {...}
}
然后执行命令,将修改后的finalizer-example.json提价到OpenShift中即可。
$ curl -k -H "Content-Type: application/json" -H "Authorization: Bearer $(oc whoami -t)" -X PUT --data-binary @finalizer-example.json $(oc whoami --show-server)/api/v1/namespaces/finalizer-example/finalize
OpenShift 4 - 如何删除Terminating状态的项目相关推荐
- 删除Terminating状态的Pod
<OpenShift 4.x HOL教程汇总> 第一招:强制删除名为POD_NAME的Pod. $ oc delete pod POD_NAME --grace-period=0 --fo ...
- Kubernetes删除一直处于Terminating状态的namespace
背景:近期由于公司需要将部署在ucloud上的rancher迁移到阿里云上,所以需要将原有Rancher依赖的namespace(cattle-system)删除,但在删除中出现了删除的namespa ...
- K8S命名空间处于Terminating状态,如何强制删除
一.现象 当删除命名空间后,发现该空间一直处于Terminating状态 [root@imanager-beta-arm-21756-5g5ap ~]# kubectl get ns NAME STA ...
- 服务器上的此文件夹中具有更多项目,清理或删除“可恢复的项目”文件夹中的项目...
清理或删除"可恢复的项目"文件夹中的项目 2021/6/1 本文内容 "可恢复的项目"文件夹 (在 Exchange 早期版本中称为垃圾站 ) , 用于防止意外 ...
- configuration 命名空间_kubernetes30:monitoring命名空间处于Terminating状态的处理方法...
删除monitoring命名空间时总也无法彻底删除,发现monitoring处于Terminating状态,故有此文. kubectl get namespaces -o wide 解决:尝试使用fo ...
- Pod 一直停留在 Terminating 状态,我等得花儿都谢了~
更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io 前言 近期,弹性云线上集群发生了几起特殊的容器漂移失败事件,其特殊之处在于容器处于 Pod Terminating 状态 ...
- VS2005中删除最近打开的项目和文件的记录
VS2005中删除最近打开的项目和文件的记录 VS2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-! 下面介绍几种删除的方法: 第一种:建立一个ba ...
- Git之删除本地和远程项目
目录 删除本地项目 删除远程项目 删除本地项目: git rm -rf project 或者 rm -rf project [删除工作区项目] git add project [将删除的项目添加 ...
- 软定时器的删除与状态查询
文章目录 1 软定时器的删除与状态查询 1 软定时器的删除与状态查询 定时器的删除: 定时器状态查询: 参考资料: [李述铜]从0到1自己动手写嵌入式操作系统
最新文章
- OpenCV中 Mat 按行或按列合并程序
- 苹果手机换了屏显示无服务器,苹果将​​为存在显示问题的iPhone 11提供免费更换...
- mac用什么写python程序_mac下的应用程序发布 及 打包(Python写的脚本,可打包第三方库)...
- JS对象与Dom对象与jQuery对象之间的区别
- 图片转注释python代码(转)
- 老工程师谈电子物料:别拿一分钱不当回事!
- 【转】java io 总结(图)
- Pytest之pytest.assume用例中断言1失败会继续执行后续代码断言2
- ASP.NET MVC中,通用的异常处理
- m苹果放n篮子_能用一只手,我绝对不用一双:苹果试图解锁更多Apple Watch控制手势...
- 非线性最小二乘通俗易懂解释
- 四、Linux常用命令——文件搜索命令
- 解决ASP.NET页面回车回发的问题
- UNIGUI中如果获得Session情况
- Redux 入门 -- 处理 async action
- 五万美元的年薪是如何花光的
- 【073】首届工控中国大会|翼辉为自主生态共建发声
- Java Shiro 设置 anon 无效
- CAD图纸该如何修改背景颜色呢?
- NDN助力网络5.0时代
热门文章
- 怎样把php网站转为h5,【php】php如何把网页中的一部分生成.jpg
- usb连接不上 艾德克斯电源_工程师,USB与SPI之间如何通信?什么芯片方案可以实现...
- 无线鼠标可以强制配对_酷冷至尊MM831三模游戏鼠标评测
- 随机数插入排序c 语言,C语言程序设计100例之(22):插入排序
- 怎样获取php页面get的值,PHP循环获取GET和POST值的代码
- java 堆 栈 ===_Java堆,栈,堆栈
- 浓郁东方民俗剪纸风新年春节海报,psd分层模板
- 灵感加油站|当设计师没有灵感时怎么办?
- 稀缺PSD分层质感男模特男装电商海报
- 完美的做图配色专辑,UI设计师赶紧收藏