k8s 删除ns 卡住的解决办法
在某些情况下,在k8s中会无法删除某个namespace,它会一直卡在terminating状态下。解决这个问题的步骤为:
kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get --show-kind --ignore-not-found -n <namespace>
这个指令找到阻碍这个namespace删除的资源,然后手动删除这些资源。
但是大部分时候,这些资源也杀不掉,解决办法是执行
kubectl edit pod -o json
然后找到里面的"finalizers",把它的值设置成一个空数组。
解决这些资源后,参照以下文档删除那个ns:
Resolution
To delete a namespace stuck in the finalizing state:
Enable docker admin client bundle
GET the namespace object
$ NAMESPACE=skynet
$ kubectl get ns $NAMESPACE -o json > /tmp/${NAMESPACE}.json
$ cat /tmp/${NAMESPACE}.json
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"creationTimestamp": "2019-02-04T16:15:06Z",
"name": "skynet",
"resourceVersion": "20879144",
"selfLink": "/api/v1/namespaces/skynet",
"uid": "0951bcf9-2898-11e9-8e38-0242ac11000b"
},
"spec": {
"finalizers": [
"kubernetes"
]
},
"status": {
"phase": "Active"
}
}
Use a text editor to delete the all elements in finalizer array, leaving only an empty array
[]such as below example:{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"creationTimestamp": "2019-02-04T16:15:06Z",
"name": "skynet",
"resourceVersion": "20879144",
"selfLink": "/api/v1/namespaces/skynet",
"uid": "0951bcf9-2898-11e9-8e38-0242ac11000b"
},
"spec": {
"finalizers": [
]
},
"status": {
"phase": "Active"
}
}
PUT the namespace object without the finalizer
a. Get a bearer token
```
UCP_URL=ucp.example.com
USERNAME=admin
PASSWORD=supersecretadminpassword
curl -sk -d "{\"username\":\"$USERNAME\",\"password\":\"$PASSWORD\"}" https://${UCP_URL}/auth/login | jq -r .auth_token > auth-token
```
b. Issue an HTTP PUT
`curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json https://kubernetes-cluster-ip/api/v1/namespaces/skynet/finalize` Example: `curl -k -H "Content-Type: application/json" -H "authorization: Bearer $(cat ./auth-token)" -X PUT --data-binary @/tmp/skynet.json https://ucp.example.com/api/v1/namespaces/skynet/finalize`
After the finalizer array is empty and the status is in terminating, kubernetes will delete the namespace.
参考:https://success.docker.com/article/kubernetes-namespace-stuck-in-terminating
k8s 删除ns 卡住的解决办法的更多相关文章
- myeclipse 启动卡住的解决办法
myeclipse 启动卡住的解决办法 今天启动myeclipse突然卡住,CPU一直占用,启动任务管理器强制关闭.重启myeclipse,重启电脑都不能够解决. 上网查找,在工程路径(工作空间的路径 ...
- [angular2/4/8]用ng new创建项目卡住的解决办法
官方文档 英文版:https://angular.io/guide/quickstart 中文版:https://angular.cn/guide/quickstart Installing pack ...
- mac 环境下mysql 不能删除schema问题的解决办法
首先说明下问题环境,我是在mac机器上安装的mysql+workbench. 在删除一个数据库的时候,出现error dropping database cant rmdir ./test 的问题. ...
- Visual Studio 2015安装过程卡住,解决办法
Visual Studio 2015安装过程中卡住的情况有很多,我遇到的是卡在安装windows 更新KB2999226,解决办法 手动安装此更新包,位置在Visual Studio的安装包中,目录: ...
- MAC book 无法删除普通用户的解决办法
1来自苹果官网 macOS Sierra: 删除用户或群组 如果您是管理员,当您不想再让某些用户访问 Mac 时,可以删除他们.您也可以删除不想要的群组. 删除用户时,您可以存储该用户的个人文件夹(包 ...
- 控制台窗口和powershell运行服务会卡住的解决办法
之前使用nodejs做了一个简单的web服务,通过控制台窗口运行,通过浏览器访问发现有时候浏览器等很久数据都加载不出来,以为是代码有问题,后来发现是控制台卡住了,按一下enter键就好了,当时百度了一 ...
- mysql03--误删除了所有用户解决办法
误删除了所有用户解决办法 第一种方法(企业常用) 1.将数据库down掉 [root@db03 mysql]# /etc/init.d/mysqld stop Shutting down MySQL. ...
- docker删除镜像时报错解决办法
报错信息 [root@kvm ~]# docker rmi 4950a54ede5a Error response from daemon: conflict: unable to delete 49 ...
- [转载]Win10蓝牙设备删除后无法连接解决办法
转自 https://blog.csdn.net/Tokeyman/article/details/86268005 现象 一般情况下,当操作系统无法与蓝牙设备,比如鼠标键盘等出现无法连接的情况,通过 ...
随机推荐
- golang高并发
golang 为什么能做到高并发 goroutine是go并行的关键,goroutine说到底就是携程,但是他比线程更小,几十个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这 ...
- 浅入深出Vue:文章编辑
登录与注册功能都已经实现,现在是时候来开发文章编辑功能了. 这里咱们就使用 markdown 作为编辑语言吧,简洁通用.那么我们就需要找一下 markdown 的编辑器组件了,而且还要支持 vue噢. ...
- tensorflow2.0编程规范
背景 tensorflow2.0 相比于1.0 有很大变化,1.0版本的placeholder,Session都没有了,2.0版本强推使用keras.keras是一个比较高层的api,确实挺好用的,一 ...
- 如何在vue项目中引入elementUI组件
个人博客同步文章 https://mr-houzi.com/2018/02/... 前提:已经安装好Vue 初始化vue vue init webpack itemname 运行初始化demo 运行一 ...
- 题解 POJ1149 Pigs
先翻译一下吧(题面可以在原OJ上找) Mirko在一个由M个锁着的猪舍组成的养猪场工作,Mirko无法解锁任何猪舍,因为他没有钥匙.客户纷纷来到农场.他们每个人都有一些猪舍的钥匙,并想购买一定数量的猪 ...
- 【leetcode】1283. Find the Smallest Divisor Given a Threshold
题目如下: Given an array of integers nums and an integer threshold, we will choose a positive integer di ...
- C# 常用方法——base64字符串转图片
其他常用方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html /// <summary> /// base64编码的文本转为图片 / ...
- 激活WebStorm2017.3.1
亲测有效,测试日期:20181202 转发自:https://blog.csdn.net/bjzhaoxiao/article/details/81486490
- XML -- 为什么选择XML?
1.XML是什么,主要功能? XML全称(EXtensible Markup Language),是可扩展性标记语言. XML主要功能是用来传输和存储数据.它就是一种纯文本.只要程序能访问纯文本就能访 ...
- Confluence 6 评论一个文件
无论是一个图片 —— 例如一个模拟的新市场计划需要反馈,还是一个 PDF 文件,一个演讲稿,或者任何你可以在 Confluence 中预览的文件.你可以在预览的的任何位置放置一个热点然后添加你的评论后 ...