仅删除

1
kubectl delete namespace <ns>

强制删除

1
2
# grace-period=0: 设置优雅删除时间为0
kubectl delete namespace <ns> --force --grace-period=0

修改.spec.finalizer和metadata.finalizer字段

1
2
kubectl edit namespace cattle-system
查找finalizers,将后面的值置为[]

通过k8s提供的api接口,修改.spec.finalizers和metadata.finalizer字段,将后面的值置为[],从而k8s会直接将该ns删除

1
2
3
4
5
6
1. kubectl get namespace <ns> -o json > xx.json
2. 编辑该xx.json文件,修改.spec.finalizers字段,将后面的值置为[]
3. 另开一个终端,开启k8s apiserver的一个http代理,以免必须带上证书才能访问: kubectl proxy --port=8081
4. 另开一个界面执行
curl -k -H "Content-Type:application/json" -X PUT --data-binary @test.json \
http://127.0.0.1:8081/api/v1/namespaces/<ns>/finalize