Comment résoudre les problèmes liés aux espaces de noms dont l'état est En cours de résiliation dans mon cluster Amazon EKS ?

Lecture de 2 minute(s)
0

J'ai essayé de supprimer un espace de noms dans mon cluster Amazon Elastic Kubernetes Service (Amazon EKS). Toutefois, l'espace de noms est bloqué dans l'état « En cours de résiliation ».

Brève description

Pour supprimer un espace de noms, Kubernetes doit d'abord supprimer toutes les ressources qu'il contient. Il doit ensuite vérifier l'état des services d'API enregistrés. Un espace de noms reste bloqué dans l'état En cours de résiliation pour les raisons suivantes :

  • L'espace de noms contient des ressources que Kubernetes ne peut pas supprimer.
  • Le statut d'un service d'API est Faux.

Résolution

1.    Enregistrez un fichier JSON comme dans l'exemple suivant :

kubectl get namespace TERMINATING_NAMESPACE -o json > tempfile.json

Remarque : Remplacez TERMINATING_NAMESPACE par le nom de votre espace de noms bloqué.

2.    Supprimez le bloc de tableau des finalisateurs de la section des spécifications du fichier JSON :

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

Une fois que vous avez supprimé le bloc de tableau des finalisateurs, la section des spécifications du fichier JSON ressemble à ceci :

"spec" : {
    }

3.    Pour appliquer les modifications, exécutez la commande suivante :

kubectl replace --raw "/api/v1/namespaces/TERMINATING_NAMESPACE/finalize" -f ./tempfile.json

Remarque : Remplacez TERMINATING_NAMESPACE par le nom de votre espace de noms bloqué.

4.    Vérifiez que l'espace de noms en cours de résiliation a été supprimé :

kubectl get namespaces

Répétez ces étapes pour tous les espaces de noms restants dont l'état est En cours de résiliation.

Informations connexes

Qu’est-ce qu’Amazon EKS ?

Espaces de noms (sur le site Kubernetes)

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an