¿Cómo soluciono los problemas de los espacios de nombres en un estado terminado en mi clúster de Amazon EKS?

Última actualización: 20/10/2022

He intentado eliminar un espacio de nombres en mi clúster de Amazon Elastic Kubernetes Service (Amazon EKS). Sin embargo, el espacio de nombres está atascado en el estado “Terminating” (Terminando).

Descripción corta

Para eliminar un espacio de nombres, Kubernetes debe eliminar primero todos los recursos del espacio de nombres. A continuación, debe comprobar el estado de los servicios API registrados. Un espacio de nombres se queda atascado en el estado “Terminando” por los siguientes motivos:

  • El espacio de nombres contiene recursos que Kubernetes no puede eliminar.
  • Un servicio de API tiene el estado “Falso”.

Resolución

Siga estas instrucciones para eliminar los espacios de nombres bloqueados en el estado “Terminando”.

1.    Guarde un archivo JSON similar al siguiente:

kubectl get namespace <terminating-namespace> -o json > tempfile.json

2.    Eliminar el bloque matriz de finalizadores de la sección de especificaciones del archivo JSON. El siguiente es un ejemplo de la sección de especificaciones de un archivo JSON que contiene el bloque matriz de finalizadores que se va a eliminar:

"spec": {
        "finalizers": [
            "kubernetes"
        ]
    }

Después de eliminar el bloque matriz de finalizadores, la sección de especificaciones del archivo JSON tiene el siguiente aspecto:

"spec" : {
    }

3.    Para aplicar los cambios, ejecute un comando similar al siguiente:

kubectl replace --raw "/api/v1/namespaces/<terminating-namespace>/finalize" -f ./tempfile.json

4.    Compruebe que se ha eliminado el espacio de nombres de terminación:

kubectl get namespaces

Repita estos pasos para los espacios de nombres restantes bloqueados en el estado “Terminating” (Terminando).


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?