强制删除k8s命名空间
背景删除ns时,有时候会一直卡在terminating的状态,无法删除,此时会引发一些问题,所以试了两种方法,记录下来假定ns名称为test方法一通过强制删除,并且设置优雅删除时间为0(默认为30s)$ kubectl delete ns test --force --grace-period=0方法一之后还是无法删除,请使用方法二方法二通过k8s提供的api接口,把.spec.finalizer
背景
删除ns时,有时候会一直卡在terminating的状态,无法删除,此时会引发一些问题,所以试了两种方法,记录下来
假定ns名称为test
方法一
通过强制删除,并且设置优雅删除时间为0(默认为30s)
$ kubectl delete ns test --force --grace-period=0
方法一之后还是无法删除,请使用方法二
方法二
通过k8s提供的api接口,把.spec.finalizers字段及其内容删除,从而k8s会直接将该ns删除
把该ns导出为json格式的文件
$ kubectl get ns test -ojson > test.json
vi编辑该test.json文件,把.spec.finalizers字段删除
另开一个终端,开启k8s apiserver的一个http代理,以免必须带上证书才能访问
$ kubectl proxy --port=8081
在调用api接口结束后,可以ctrl+c终止代理
调用api接口修改ns
// 注意替换ns名称,将/namespace下的test替换
$ curl -k -H "Content-Type:application/json" -X PUT --data-binary @test.json http://127.0.0.1:8081/api/v1/namespaces/test/finalize
更多推荐
所有评论(0)