背景
刪除ns
時啤挎,有時候會一直卡在terminating
的狀態(tài)驻谆,無法刪除庆聘,此時會引發(fā)一些問題胜臊,所以試了兩種方法伙判,記錄下來
假定ns
名稱為test
方法一
通過強(qiáng)制刪除象对,并且設(shè)置優(yōu)雅刪除時間為0(默認(rèn)為30s)
$ kubectl delete ns test --force --grace-period=0
博主試了方法一之后還是無法刪除宴抚,經(jīng)過網(wǎng)上沖浪之后找到了方法二
方法二
通過k8s提供的api接口勒魔,把
.spec.finalizers
字段及其內(nèi)容刪除菇曲,從而k8s會直接將該ns刪除
- 把該ns導(dǎo)出為json格式的文件
$ kubectl get ns test -ojson > test.json
-
vi
編輯該test.json
文件冠绢,把.spec.finalizers
字段刪除 - 另開一個終端常潮,開啟k8s apiserver的一個http代理弟胀,以免必須帶上證書才能訪問
$ kubectl proxy --port=8081
在調(diào)用api接口結(jié)束后喊式,可以ctrl+c
終止代理
- 調(diào)用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
至此孵户,不出意外應(yīng)該刪除成功了岔留,如果沒有的話夏哭,請繼續(xù)網(wǎng)上沖浪吧...