k8s namespace 删除后一直terminating

背景

删除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名称
$ curl -k -H "Content-Type:application/json" -X PUT --data-binary @test.json http://127.0.0.1:8081/api/v1/namespaces/test/finalize

至此,不出意外应该删除成功了,如果没有的话,请继续网上冲浪吧…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值