Warum kann ich meine Amazon EKS-Cluster-Ressourcen nicht löschen?
Ich kann keine Ressource aus meinem Amazon Elastic Kubernetes Service (Amazon EKS)-Cluster löschen.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI-Version verwendest.
Ergreife die folgenden Maßnahmen zur Fehlerbehebung auf der Grundlage der Amazon EKS-Ressource, die sich im Status Wird beendet befindet. Finalizer warnen die Controller davor, Ressourcen zu löschen und verhindern ein versehentliches Löschen. Wenn deine Ressource in Wird beendet hängen bleibt, musst du Finalizer aus ihr entfernen, bevor du sie löschst. Weitere Informationen zu Finalizern findest du unter Finalizers auf der Kubernetes-Website.
Probleme beim Löschen von Namespace beheben
Führe den folgenden Befehl aus, um zu überprüfen, ob Ressourcen im Namespace im Status Wird beendet hängen bleiben:
kubectl get all -n namespace-name | grep Terminating
Hinweis: Ersetze namespace-name durch den Namespace.
Führe den folgenden Befehl aus, um die Ressource manuell zu löschen:
kubectl delete resource resource-name -n namespace-name
Hinweis: Ersetze resource durch den Ressourcentyp, resource-name durch den Ressourcennamen und namespace-name durch den Namespace.
Führe den folgenden Befehl aus, um nach Finalizer- oder API-Servicefehlern zu suchen:
kubectl get ns namespace-name -o json
Hinweis: Ersetze namespace-name durch den Namespace.
Wenn du Fehler in der Befehlsausgabe erhältst, findest du weitere Informationen unter Wie behebe ich Probleme mit Namespaces in einem beendeten Zustand in meinem Amazon EKS-Cluster?
Probleme mit dem Ingress-Löschen beheben
Lösche Load Balancer oder Zielgruppen, die der Ingress-Ressource zugeordnet sind.
Führe den folgenden Befehl aus, um die Finalizer aus einer Ingress-Ressource zu entfernen:
kubectl patch ingress ingress-name -n namespace-name -p '{"metadata":{"finalizers":[]}}' --type=merge
Hinweis: Ersetze ingress-name durch den Ingress-Namen und namespace-name durch den Namespace.
Führe dann den folgenden Befehl aus, um die Ingress-Ressource zu löschen:
kubectl delete ingress ingress-name -n namespace-name
Hinweis: Ersetze ingress-name durch den Ingress-Namen und namespace-name durch den Namespace.
Probleme beim Löschen von Services beheben
Führe den folgenden Befehl aus, um die Finalizer aus der Serviceressource zu entfernen:
kubectl patch svc service-name -n namespace-name -p '{"metadata":{"finalizers":[]}}' --type=merge
Hinweis: Ersetze service-name durch deinen Servicenamen und namespace-name durch den Namespace.
Verwende die Amazon EC2-Konsole, um den Löschschutz auf dem Load Balancer zu deaktivieren, der dem Service zugeordnet ist. Oder verwende die Anmerkung service.beta.kubernetes.io/aws-load-balancer-attributes, um den Löschschutz zu deaktivieren. Weitere Informationen findest du unter Resource attributes (Ressourcenattribute) auf der Kubernetes-Website.
Führe dann den folgenden Befehl aus, um den Service zu löschen:
kubectl delete svc service-name -n namespace-name
Hinweis: Ersetze service-name durch deinen Servicenamen und namespace-name durch den Namespace.
Beheben von Problemen beim Löschen von PV und PVC
Wenn du das PersistentVolume (PV) oder den PersistentVolumeClaim (PVC) nicht löschen kannst, überprüfe, ob die folgenden Probleme vorliegen:
- Überprüfen, ob du das PV gelöscht hast, bevor du den gebundenen PVC entfernt hast
- Prüfen, ob du den PVC entfernt hast, als noch ein Pod ausgeführt wurde, und ob du ihn daran angefügt hast
Du hast das PV gelöscht
Um dieses Problem zu beheben, lösche den an das PV gebundenen PVC.
Führe den folgenden Befehl aus, um den PVC zu identifizieren, der sich im Status Wird beendet befindet, um das PV zu beschreiben:
kubectl get pv pv-name
Hinweis: Ersetze pv-name durch den PV-Namen. Der Befehl zeigt den PVC-Namen und den Namespace im Format NAMESPACE/PVC_NAME.
Beispielausgabe:
default/ebs-claim
Führe den folgenden Befehl aus, um den PVC zu löschen:
kubectl delete pvc -n namespace-name pvc-name
Hinweis: Ersetze namespace-name durch den PVC-Namespace und pvc-name durch den PVC-Namen.
Wenn du das PV immer noch nicht löschen kannst, führe den folgenden Befehl aus, um seine Finalizer zu entfernen:
kubectl patch pv -p '{"metadata":{"finalizers":null}}' pv-name
Hinweis: Ersetze pv-name durch den PV-Namen.
Du hast den PVC entfernt
Um dieses Problem zu beheben, lösche den Pod, der an den PVC angefügt ist.
Um die Pods zu identifizieren, die dem PVC zugeordnet sind, führe den folgenden Befehl aus, um den PVC zu beschreiben:
kubectl describe pvc -n namespace-name pvc-name
Hinweis: Ersetze namespace-name durch den PVC-Namespace und pvc-name durch den PVC-Namen. Überprüfe in der Ausgabe das Attribut Used by (Wird verwendet von).
Beispielausgabe:
Name: ebs-claim Namespace: default StorageClass: ebs-sc Status: Bound Volume: pvc-3402cc47-c4d7-42c3-8965-f9e1e08f8b95 Labels: <none> Annotations: pv.kubernetes.io/bind-completed: yes pv.kubernetes.io/bound-by-controller: yes volume.beta.kubernetes.io/storage-provisioner: ebs.csi.aws.com volume.kubernetes.io/selected-node: ip-192-168-33-43.ec2.internal volume.kubernetes.io/storage-provisioner: ebs.csi.aws.com Finalizers: [kubernetes.io/pvc-protection] Capacity: 4Gi Access Modes: RWO VolumeMode: Filesystem Used By: ebs-app-59c74d8d45-z65kj Events: <none>
Im vorherigen Beispiel verwendet der Pod ebs-app-59c74d8d45-z65kj den PVC.
Führe den folgenden Befehl aus, um den Pod zu löschen:
kubectl delete pod -n namespace-name pod-name
Hinweis: Ersetze namespace-name durch den PVC-Namespace und pod-name durch den Pod-Namen.
Wenn du den PVC immer noch nicht löschen kannst, führe den folgenden Befehl aus, um seine Finalizer zu entfernen:
kubectl patch pvc -p '{"metadata":{"finalizers":null}}' -n namespace-name pvc-name
Hinweis: Ersetze namespace-name durch den PVC-Namespace und pvc-name durch den PVC-Namen.
Probleme beim Löschen von Pods beheben
Wenn du den Pod nicht löschen kannst, überprüfe, ob die folgenden Probleme vorliegen:
- Prüfen, ob der Pod nicht auf die Beendigungssignale reagiert
- Überprüfen, ob dem Pod ein Finalizer zugeordnet ist, der noch nicht abgeschlossen wurde
Pod reagiert nicht auf Beendigungssignale
Wichtig: Mit der folgenden Lösung wird der Pod sofort gelöscht, ohne dass bestätigt wird, dass du den Pod, der ausgeführt wird, beendet hast. Vergewissere dich, dass der Pod nicht ausgeführt wird. Wenn du dies nicht tust, wird der Pod möglicherweise auf unbestimmte Zeit auf dem Cluster ausgeführt.
Pods werden in der Regel nach Ablauf der standardmäßigen Nachfrist von 30 Sekunden gelöscht. Wenn dein Pod nach 30 Sekunden nicht gelöscht wird, führe den folgenden Befehl aus, um das Löschen des Pods zu erzwingen:
kubectl delete pod --force --grace-period=0 -n namespace-name pod-name
Hinweis: Ersetze namespace-name durch den Pod-Namespace und pod-name durch den Pod-Namen. Du musst das Flag --grace-period auf 0 setzen, um den Pod sofort zu entfernen.
Dem Pod ist ein Finalizer zugeordnet, der noch nicht abgeschlossen wurde
Führe den folgenden Befehl aus, um zu überprüfen, ob der Pod Finalizer hat:
kubectl get pod -o yaml -n namespace-name pod-name
Hinweis: Ersetze namespace-name durch den Pod-Namespace und pod-name durch den Pod-Namen. Überprüfe in der Ausgabe metadata.finalizers, um Finalizer zu identifizieren.
Beispielausgabe:
apiVersion: v1 kind: Pod metadata: creationTimestamp: "2024-09-16T19:32:01Z" finalizers: - kubernetes labels: app: nginx pod-template-hash: 7c79c4bf97 namespace: default spec: containers: - image: nginx:latest imagePullPolicy: Always name: nginx ports: - containerPort: 80 protocol: TCP
Führe den folgenden Befehl aus, um Finalizer zu entfernen:
kubectl patch pod -p '{"metadata":{"finalizers":null}}' -n namespace-name pod-name
Hinweis: Ersetze namespace-name durch den Pod-Namespace und pod-name durch den Pod-Namen.
Probleme beim Löschen von Clustern beheben
In der Regel treten Probleme beim Löschen von Clustern auf, weil dem Cluster verwaltete Knotengruppen angefügt sind. Entferne die verwalteten Knotengruppen, um dieses Problem zu beheben. Weitere Informationen findest du unter Warum kann ich meinen Amazon EKS-Cluster nicht löschen?
Wenn einem Cluster ein verwalteter Scraper zugeordnet ist, können auch Probleme beim Löschen auftreten. In diesem Szenario kannst du das Virtual Private Network (VPC) oder die Elastic-Network-Schnittstelle, die der Scraper verwendet, nicht entfernen.
Führe den folgenden AWS-CLI-Befehl list-scrapers aus, um die Scraper-ID zu ermitteln:
aws amp list-scrapers
Führe dann den folgenden Befehl delete-scraper aus, um den Scraper zu löschen:
aws amp delete-scraper --scraper-id scraper-example
Hinweis: Ersetze scraper-example durch die Scraper-ID.
Probleme beim Löschen von Amazon EKS-verwalteten Knotengruppen beheben
Wenn du die verwaltete Knotengruppe nicht löschen kannst, überprüfe, ob die folgenden Probleme vorliegen:
- Überprüfen, ob die Ressource ein abhängiges Objekt hat
- Prüfen, ob der Vorgang zum Terminate (Beenden) der Amazon EC2 Auto Scaling-Gruppe unterbrochen ist
- Prüfen, ob die Knotengruppe Integritätsfehler aufweist
- Überprüfen, ob die Pods in den Knoten hängen bleiben
Die Ressource hat ein abhängiges Objekt
Das Abhängigkeitsproblem tritt auf, wenn eine Ressource, die von der verwalteten Knotengruppe erstellt wurde, einer anderen Ressource im AWS-Konto zugeordnet ist. In der Regel handelt es sich bei der Ressource um eine Sicherheitsgruppe. Identifiziere die Objekte, die der Sicherheitsgruppe zugeordnet sind, um dieses Problem zu beheben. Trenne dann die Sicherheitsgruppe von der Ressource. Wenn du auf Probleme stößt, findest du weitere Informationen unter Warum kann ich eine an meine Amazon VPC angefügte Sicherheitsgruppe nicht löschen?
Der Prozess zum Beenden der EC2 Auto Scaling-Gruppe ist unterbrochen
Um dieses Problem zu beheben, starte den Prozess zum Beenden neu.
Deine Knotengruppe weist Integritätsfehler auf
Informationen zu den Arten von Integritätsfehlern, die in der verwalteten Knotengruppe auftreten können, findest du unter Issue (Problem).
Informationen zur Behebung von Integritätsproblemen findest du unter Wie behebe ich Fehler bei verwalteten Knotengruppen in einem Amazon EKS-Cluster?
Die Pods sind in den Knoten hängen geblieben
Wenn du die verwaltete Knotengruppe löschst, wird möglicherweise die folgende Fehlermeldung angezeigt:
„1 pods are unevictable from node ip-192-168-29-140.ec2.internal“
Dieses Problem kann auftreten, wenn ein Pod im Cluster im Status Wird beendet hängen bleibt. Um dieses Problem zu beheben, sorge für den kubectl-Zugriff auf den Cluster und führe dann den folgenden Befehl aus:
kubectl get pod -A
Der Fehler pods are unevictable kann auftreten, weil du das PodDisruptionBudget falsch konfiguriert hast oder nicht genügend Unterbrechungen verfügbar sind, um den Pod zu entfernen. Informationen zur Behebung dieses Problems findest du unter Wie kann ich Probleme bei der Aktualisierung verwalteter Knotengruppen bei Amazon EKS beheben?
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 6 Monaten
AWS OFFICIALAktualisiert vor 9 Monaten
AWS OFFICIALAktualisiert vor 10 Monaten