Wie behebe ich Fehler bei Namespaces in einem beendeten Zustand in meinem Amazon EKS-Cluster?

Letzte Aktualisierung: 20.10.2022

Ich habe versucht, einen Namespace in meinem Amazon-EKS-Cluster (Amazon Elastic Kubernetes Service) zu löschen. Der Namespace steckt jedoch im Status „Wird beendet“ fest.

Kurzbeschreibung

Um einen Namespace zu löschen, muss Kubernetes zunächst alle Ressourcen im Namespace löschen. Anschließend muss es registrierte API-Services auf den Status überprüfen. Ein Namespace bleibt aus folgenden Gründen im Status „Beendet“ hängen:

  • Der Namespace enthält Ressourcen, die Kubernetes nicht löschen kann.
  • Ein API-Service hat den Status „Falsch“.

Auflösung

Befolgen Sie diese Anweisungen, um Namespaces zu löschen, die im Status „Wird beendet“ stecken.

1.    Speichern Sie eine JSON-Datei ähnlich der folgenden:

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

2.    Entfernen Sie den Array-Block des Finalizers aus dem Spezifikationsabschnitt der JSON-Datei. Das Folgende ist ein Beispiel für den Spezifikationsabschnitt einer JSON-Datei, die den zu entfernenden Array-Block des Finalizers enthält:

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

Nach dem Entfernen des Array-Blocks des Finalizers sieht der Spezifikationsabschnitt der JSON-Datei wie folgt aus:

"spec" : {
    }

3.    Um die Änderungen zu übernehmen, führen Sie einen Befehl aus, der dem folgenden ähnelt:

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

4.    Stellen Sie sicher, dass der zu beendende Namespace entfernt wurde:

kubectl get namespaces

Wiederholen Sie diese Schritte für alle verbleibenden Namespaces, die im Status „Wird beendet“ stecken geblieben sind.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?