Bitácora de EleKtR0

English - Italiano - Deutsch - Français - Português - русский

9 de septiembre de 2020

Forzar eliminación de namespace Kubernetes en estado "Terminating"

Tres formas distintas de eliminar un namespace de Kubernetes que se queda en estado Terminating al ejecutar el comando kubectl delete namespace:
 
1º Forzar eliminación del namespace:
 
NAMESPACE=mynamespace
kubectl delete namespace $NAMESPACE --force=true --grace-period=0
 
 
2º Buscar recursos asociados al namespace para eliminarlos manualmente si queda alguno:
 
NAMESPACE=mynamespace
for rsType in $(kubectl api-resources --verbs=list --namespaced -o name 2>/dev/null)
do  
    echo Resource: $rsType;  
    kubectl get --show-kind --ignore-not-found -n $NAMESPACE $rsType;  
done;
 
3º Eliminar los finalizers del namespace:
 
NAMESPACE=mynamespace
TEMP=$(mktemp)
 
kubectl get namespace $NAMESPACE -o json > $TEMP
jq 'del(.spec.finalizers[])' $TEMP
 
curl -H "Content-Type: application/json" -X PUT --data-binary @$TEMP http://127.0.0.1:8080/api/v1/namespaces/$NAMESPACE/finalize
 
wait 15
 
kubectl get namespaces
 
rm -f $TEMP

Etiquetas: ,