View a markdown version of this page

Fehlerbehebung 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 unter, 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.

Fehlerbehebung bei EKS-Funktionen

Anmerkung

EKS-Funktionen werden vollständig verwaltet und außerhalb Ihres Clusters ausgeführt. Sie haben keinen direkten Zugriff auf Controller-Namespaces. Die Problembehandlung konzentriert sich auf den Zustand der Funktionen, den Ressourcenstatus, die Konfiguration und die Controller-Protokolle. Sie können die Übertragung von Controller-Protokollen konfigurieren, um Einblick in das Controller-Verhalten zu erhalten. Siehe Zugriff auf EKS Capabilities Controller-Protokolle.

Allgemeiner Ansatz zur Fehlerbehebung

Gehen Sie bei der Fehlerbehebung bei EKS-Funktionen wie folgt vor:

  1. Funktionsstatus überprüfen: Verwenden Sie diese aws eks describe-capability Option, um den Funktionsstatus und Statusprobleme anzuzeigen

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

  3. Überprüfen Sie die Controller-Protokolle: Wenn die Protokollzustellung konfiguriert ist, fragen Sie die Controller-Protokolle nach Fehlern und Abstimmungsdetails ab

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

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

Verwenden Sie Controller-Protokolle zur Fehlerbehebung

Wenn Sie die Controller-Protokollzustellung konfiguriert haben (sieheZugriff auf EKS Capabilities Controller-Protokolle), können Sie Protokolle abfragen, um Abstimmungsfehler, Ressourcenkonflikte und Konfigurationsprobleme zu identifizieren.

Fehler auf allen Controllern abfragen

fields @timestamp, controller, message, error | filter level = "error" | sort @timestamp desc | limit 50

Filtern Sie Protokolle für einen bestimmten ACK Service Controller

Verwenden Sie das controllerGroup Feld, um Protokolle von einem bestimmten ACK Service Controller zu isolieren:

fields @timestamp, message, error | filter controllerGroup = "s3.services.k8s.aws" | filter level = "error" | sort @timestamp desc

Um weiter nach der Art der Ressource zu filtern (z. B. nur SecurityGroup Protokolle vom EC2-Controller):

fields @timestamp, message, error | filter controllerGroup = "ec2.services.k8s.aws" | filter controllerKind = "SecurityGroup" | sort @timestamp desc | limit 100

Filtern Sie die Protokolle für eine bestimmte Argo-CD-Anwendung

Verwenden Sie das application Feld, um Protokolle für eine bestimmte Argo-CD-Anwendung zu isolieren:

fields @timestamp, message, error | filter application = "my-application" | sort @timestamp desc | limit 100

Verfolgen Sie den Abgleich für eine bestimmte Ressource

Verwenden Sie das reconcileID Feld, um einen einzelnen Abstimmungszyklus zu verfolgen:

fields @timestamp, level, message, error | filter reconcileID = "your-reconcile-id" | sort @timestamp asc

Allgemeine Protokollmuster, die auf Probleme hinweisen

  • Wiederholte Abgleichsfehler — Der Controller kann den gewünschten Status für eine Ressource nicht erreichen. Überprüfen Sie das error Feld auf Details wie IAM-Berechtigungsfehler oder ungültige Ressourcenkonfigurationen.

  • „Abgleichfehler“ mit AWS API-Fehler — Der Capability-Rolle fehlen möglicherweise die Berechtigungen für den jeweiligen AWS Dienstvorgang. Überprüfen Sie die Fehlermeldung und aktualisieren Sie die IAM-Richtlinien entsprechend.

  • Keine Protokolleinträge für eine Ressource — Wenn Sie keine Protokolle für eine Ressource sehen, von der Sie erwarten, dass der Controller einen Abgleich durchführt, überprüfen Sie, ob die Funktion vorhanden ist ACTIVE und ob die Ressource in einem Namespace vorhanden ist, auf den die Capability zugreifen kann.

Überprüfen Sie den Zustand der Funktion

Alle EKS-Funktionen stellen Gesundheitsinformationen ü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 Cluster-Namen 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)

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

Allgemeine Funktionsstatus

WIRD ERSTELLT: Die Fähigkeit wird gerade eingerichtet.

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

AKTUALISIERUNG: Konfigurationsänderungen werden angewendet. Warten Sie, bis der Status wieder erreicht istACTIVE.

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 die IAM-Rolle ist falsch oder fehlt

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

  • Probleme mit dem Cluster-Zugriff

  • Ungültige Konfigurationsparameter

Überprüfen Sie den Status der Kubernetes-Ressource

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

# 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 Status des Abgleichs

Überprüfen Sie die IAM-Berechtigungen und den Cluster-Zugriff

Viele Funktionsprobleme sind auf IAM-Berechtigungsprobleme oder eine fehlende Konfiguration des Clusterzugriffs zurückzuführen. Überprüfen Sie sowohl die Capability Role Permissions als auch die Cluster-Zugriffseinträge.

Überprüfen Sie die IAM-Rollenberechtigungen

Stellen Sie sicher, dass die Capability Role ü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 der Capability Role. Wenn sie fehlt, kann die Fähigkeit nicht auf den Cluster zugreifen.

Überprüfen Sie die Zugriffsrichtlinien, die dem Eintrag beigefügt sind:

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, um Kubernetes-Ressourcen zu erstellen und zu verwalten

  • kro: Benötigt Berechtigungen, um Kubernetes-Ressourcen zu erstellen und zu verwalten

  • Argo CD: Benötigt Berechtigungen zum Erstellen und Verwalten von Anwendungen und benötigt Zugriffseinträge auf Remote-Zielclustern für Multi-Cluster-Bereitstellungen

Für Argo CD-Multi-Cluster-Bereitstellungen:

Stellen Sie bei der Bereitstellung auf Remote-Clustern sicher, dass die Capability-Rolle über einen Zugriffseintrag auf jedem Zielcluster 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 Entry auf einem Zielcluster fehlt, kann Argo CD keine Anwendungen darauf bereitstellen. Einzelheiten Zielcluster registrieren zur Konfiguration finden Sie unter.

Capability-specific Problembehandlung

Eine ausführliche Anleitung zur Problembehandlung für jeden Funktionstyp finden Sie unter

Häufige Probleme bei allen Funktionen

Die Fähigkeit steckt im Status CREATING fest

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

  1. Prüfen Sie den Zustand der Funktion 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 die richtige Vertrauensrichtlinie hat

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

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

Ressourcen werden nicht erstellt oder aktualisiert

Wenn die Funktion aktiviert istACTIVE, Ressourcen aber 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

Wenn describe-capability gesundheitliche Probleme auftreten:

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

  2. Beheben Sie die Grundursache (IAM-Berechtigungen, Konfigurationsfehler usw.)

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

Nächste Schritte