k8s 删除异常资源
整理 k8s 中的删除
# 常规删除
kubectl delete pod <pod-name>
# 使用 patch 删除
kubectl patch pod <pod-name> -n <namespace> -p '{"metadata":{"finalizers":null}}' --type=merge
# 删除处于 Terminating 状态的 namespace
# 方法一:(推荐)
(
NAMESPACE=your-rogue-namespace
kubectl proxy &
kubectl get namespace $NAMESPACE -o json |jq '.spec = {"finalizers":[]}' >temp.json
curl -k -H "Content-Type: application/json" -X PUT --data-binary @temp.json 127.0.0.1:8001/api/v1/namespaces/$NAMESPACE/finalize
)
# 方法二:
ns=namespace
cat > namespace.json <<EOF
{
"apiVersion": "v1",
"kind": "Namespace",
"metadata": {
"name": "${ns}",
"selfLink": "/api/v1/namespaces/${ns}/finalize"
},
"spec": {},
"status": {
"phase": "Terminating"
}
}
EOF
kubectl replace --raw "/api/v1/namespaces/${ns}/finalize" -f ./namespace.json