k8s删除namespace失败,状态Terminating解决方案,cattle-system一直为Terminating状态解决方案

解决方案,删除其中的spec字段,因为k8s集群是携带认证的:

查到命名空间下确实还有一些引用pod还在运行

[root@jettoloader ~]# kubectl api-resources -o name --verbs=list --namespaced | xargs -n 1 kubectl get --show-kind --ignore-not-found -n longhorn-system

但是只能看到无法删除

kubectl proxy --port=8081 &

1,导出信息

kubectl get namespace wubo  -o json > tmp.json

2,删除spec

k8s删除namespace失败,状态Terminating解决方案,cattle-system一直为Terminating状态解决方案_第1张图片

3 执行

curl -k -H "Content-Type: application/json" -X PUT --data-binary @tmp.json http://127.0.0.1:8081/api/v1/namespaces/wubo/finalize

或者

namespace="kubernetes-dashboard "
[root@localhost k3s]# kubectl get ns ${namespace}  -o json | jq 'del(.spec.finalizers)' |curl -v -H "Content-Type: application/json" -X PUT --data-binary @- http://127.0.0.1:8081/api/v1/namespaces/${namespace}/finalize

故障现象

使用Rancher2.0添加了k3s集群进行Kubernetes的相关web管理。

因删除k3s集群监控服务:删除Rancher依赖的namespace(cattle-system),状态一直是Terminating

解决办法

kubectl patch namespace cattle-system -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-system --grace-period=0 --force

kubectl patch namespace cattle-global-data -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system
kubectl delete namespace cattle-global-data --grace-period=0 --force

kubectl patch namespace local -p '{"metadata":{"finalizers":[]}}' --type='merge' -n cattle-system

for resource in `kubectl api-resources --verbs=list --namespaced -o name | xargs -n 1 kubectl get -o name -n local`; do kubectl patch $resource -p '{"metadata": {"finalizers": []}}' --type='merge' -n local; done

kubectl delete namespace local --grace-period=0 --force

你可能感兴趣的:(java,eureka,开发语言)