Problembehebung bei EKS-Funktionen - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehebung bei EKS-Funktionen

Dieses Thema enthält allgemeine Anleitungen zur Fehlerbehebung bei EKS-Funktionen, einschließlich Funktionsprüfungen, häufig auftretenden Problemen und Links zur funktionsspezifischen Problembehebung.

Anmerkung

Die EKS-Funktionen werden vollständig verwaltet und außerhalb Ihres Clusters ausgeführt. Sie haben keinen Zugriff auf Controller-Logs oder Controller-Namespaces. Die Fehlerbehebung konzentriert sich auf den Zustand der Funktionen, den Ressourcenstatus und die Konfiguration.

Allgemeiner Ansatz zur Fehlerbehebung

Gehen Sie bei der Behebung von Problemen mit EKS-Funktionen wie folgt vor:

  1. Funktionsstatus überprüfen: Dient aws eks describe-capability zum Anzeigen des Funktionsstatus und der Integritätsprobleme

  2. Überprüfen Sie den Ressourcenstatus: Überprüfen Sie die von Ihnen erstellten Kubernetes-Ressourcen (CRDs) auf Statusbedingungen und Ereignisse

  3. Überprüfen Sie die IAM-Berechtigungen: Stellen Sie sicher, dass die Capability Role über die erforderlichen Berechtigungen verfügt

  4. Konfiguration überprüfen: Stellen Sie sicher, dass die funktionsspezifische Konfiguration korrekt ist

Überprüfen Sie den Zustand der Funktionen

Alle EKS-Funktionen stellen Statusinformationen über die EKS-Konsole und die describe-capability API bereit.

Konsole:

  1. Öffnen Sie die Amazon EKS-Konsole unter https://console.aws.amazon.com/eks/home#/clusters.

  2. Wählen Sie Ihren Clusternamen aus.

  3. Wählen Sie den Registerkarte Beobachtbarkeit.

  4. Wählen Sie Cluster überwachen aus.

  5. Wählen Sie die Registerkarte Funktionen, um den Zustand und den Status aller Funktionen anzuzeigen.

Auf der Registerkarte Funktionen wird Folgendes angezeigt:

  • Name und Typ der Fähigkeit

  • Aktueller Status

  • Gesundheitsprobleme, mit Beschreibung

AWS CLI:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name

Die Antwort enthält:

  • Status: Aktueller Funktionsstatus (CREATING,ACTIVE,UPDATING,DELETING,CREATE_FAILED,UPDATE_FAILED)

  • Health: Gesundheitsinformationen, einschließlich aller Probleme, die von der Fähigkeit erkannt wurden

Allgemeine Status der Fähigkeiten

ERSTELLUNG: Die Fähigkeit wird eingerichtet.

AKTIV: Die Funktion läuft und ist einsatzbereit. Wenn Ressourcen nicht wie erwartet funktionieren, überprüfen Sie den Ressourcenstatus und die IAM-Berechtigungen.

AKTUALISIERUNG: Die Konfigurationsänderungen werden übernommen. Warten Sie, bis der Status wieder angezeigt wirdACTIVE.

CREATE_FAILED oder UPDATE_FAILED: Beim Setup oder Update ist ein Fehler aufgetreten. Einzelheiten finden Sie im Abschnitt „Gesundheit“. Häufige Ursachen:

  • Die Vertrauensrichtlinie für IAM-Rollen ist falsch oder fehlt

  • Die IAM-Rolle ist nicht vorhanden oder es kann nicht darauf zugegriffen werden

  • Probleme mit dem Clusterzugriff

  • Ungültige Konfigurationsparameter

Überprüfen Sie den Kubernetes-Ressourcenstatus

EKS-Funktionen erstellen und verwalten benutzerdefinierte Kubernetes-Ressourcendefinitionen (CRDs) in Ihrem Cluster. Überprüfen Sie bei der Fehlerbehebung den Status der Ressourcen, die Sie erstellt haben:

# List resources of a specific type kubectl get resource-kind -A # Describe a specific resource to see conditions and events kubectl describe resource-kind resource-name -n namespace # View resource status conditions kubectl get resource-kind resource-name -n namespace -o jsonpath='{.status.conditions}' # View events related to the resource kubectl get events --field-selector involvedObject.name=resource-name -n namespace

Die Bedingungen für den Ressourcenstatus geben Aufschluss über:

  • Ob die Ressource bereit ist

  • Alle aufgetretenen Fehler

  • Aktueller Stand der Versöhnung

Überprüfen Sie die IAM-Berechtigungen und den Clusterzugriff

Viele Funktionsprobleme sind auf Probleme mit IAM-Berechtigungen oder eine fehlende Cluster-Zugriffskonfiguration zurückzuführen. Überprüfen Sie sowohl die Berechtigungen für die Capability Role als auch die Clusterzugriffseinträge.

Überprüfen Sie die IAM-Rollenberechtigungen

Stellen Sie sicher, dass die Capability-Rolle über die erforderlichen Berechtigungen verfügt:

# List attached managed policies aws iam list-attached-role-policies --role-name my-capability-role # List inline policies aws iam list-role-policies --role-name my-capability-role # Get specific policy details aws iam get-role-policy --role-name my-capability-role --policy-name policy-name # View the role's trust policy aws iam get-role --role-name my-capability-role --query 'Role.AssumeRolePolicyDocument'

Die Vertrauensrichtlinie muss dem capabilities.eks.amazonaws.com Dienstprinzipal Folgendes ermöglichen:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Überprüfen Sie die EKS-Zugriffseinträge und Zugriffsrichtlinien

Für alle Funktionen sind die richtigen EKS-Zugriffseinträge und -Zugriffsrichtlinien auf dem Cluster erforderlich, auf dem sie ausgeführt werden.

Stellen Sie sicher, dass der Zugriffseintrag vorhanden ist:

aws eks list-access-entries \ --cluster-name my-cluster \ --region region-code

Suchen Sie in der Liste nach dem ARN für die Capability Role. Fehlt die Fähigkeit, kann sie nicht auf den Cluster zugreifen.

Überprüfen Sie die dem Eintrag beigefügten Zugriffsrichtlinien:

aws eks list-associated-access-policies \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-capability-role \ --region region-code

Für alle Funktionen sind entsprechende Zugriffsrichtlinien erforderlich:

  • ACK: Benötigt Berechtigungen zum Erstellen und Verwalten von Kubernetes-Ressourcen

  • kro: Benötigt Berechtigungen zum Erstellen und Verwalten von Kubernetes-Ressourcen

  • Argo CD: Benötigt Berechtigungen zum Erstellen und Verwalten von Anwendungen und erfordert Zugriffseinträge auf Remote-Zielclustern für Bereitstellungen mit mehreren Clustern

Für Argo CD-Bereitstellungen mit mehreren Clustern:

Stellen Sie bei der Bereitstellung auf Remote-Clustern sicher, dass die Capability Role auf jedem Zielcluster über einen Zugriffseintrag verfügt:

# Check Access Entry on target cluster aws eks describe-access-entry \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::111122223333:role/argocd-capability-role \ --region region-code

Wenn der Access-Eintrag auf einem Zielcluster fehlt, kann Argo CD keine Anwendungen darauf bereitstellen. Einzelheiten Zielcluster registrieren zur Konfiguration finden Sie unter.

Funktionsspezifische Problembehebung

Eine ausführliche Anleitung zur Problembehebung, die für jeden Funktionstyp spezifisch ist, finden Sie unter:

Häufig auftretende Probleme in allen Funktionen

Die Fähigkeit steckt im Status CREATING fest

Wenn eine Fähigkeit länger als erwartet im CREATING Status verbleibt:

  1. Überprüfen Sie den Funktionsstatus auf bestimmte Probleme in der Konsole (Observability > Monitor Cluster > Registerkarte Capabilities) oder mithilfe der AWS CLI:

    aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name \ --query 'capability.health'
  2. Stellen Sie sicher, dass die IAM-Rolle existiert und über die richtige Vertrauensrichtlinie verfügt

  3. Stellen Sie sicher, dass Ihr Cluster zugänglich und fehlerfrei ist

  4. Suchen Sie nach Problemen auf Clusterebene, die die Einrichtung von Funktionen verhindern könnten

Ressourcen werden nicht erstellt oder aktualisiert

Wenn die Funktion aktiviert istACTIVE, aber Ressourcen nicht erstellt oder aktualisiert werden:

  1. Überprüfen Sie den Ressourcenstatus auf Fehlerbedingungen

  2. Überprüfen Sie die IAM-Berechtigungen für die spezifischen AWS Dienste (ACK) oder Repositorys (Argo CD)

  3. Überprüfen Sie die RBAC-Berechtigungen für die Erstellung der zugrunde liegenden Ressourcen (kro)

  4. Überprüfen Sie die Ressourcenspezifikationen auf Validierungsfehler

Der Zustand der Fähigkeiten weist Probleme auf

Es werden gesundheitliche Probleme describe-capability angezeigt:

  1. Lesen Sie die Problembeschreibungen sorgfältig durch — sie weisen häufig auf das spezifische Problem hin

  2. Gehen Sie der Ursache nach (IAM-Berechtigungen, Konfigurationsfehler usw.)

  3. Die Funktion wird automatisch wiederhergestellt, sobald das Problem behoben ist

Nächste Schritte