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 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.

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 Fehlerbehebung konzentriert sich auf den Funktionsstatus, den Ressourcenstatus, die Konfiguration und die Controller-Protokolle. Sie können die Übermittlung 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 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. Controller-Logs überprüfen: Wenn die Protokollzustellung konfiguriert ist, fragen Sie die Controller-Logs 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 zur Fehlerbehebung Controller-Protokolle

Wenn Sie die Übertragung von Controller-Protokollen 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

Filtert Protokolle für einen bestimmten ACK-Dienstcontroller

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 Logs vom EC2-Controller):

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

Filtert Logs 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 einzigen Abstimmungszyklus zu verfolgen:

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

Allgemeine Protokollmuster, die auf Probleme hinweisen

  • Wiederholte Abstimmungsfehler — 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.

  • „Reconciler-Fehler“ mit AWS API-Fehlern — In 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 Fähigkeit vorhanden ist ACTIVE und ob die Ressource in einem Namespace vorhanden ist, auf den die Fähigkeit zugreifen kann.

Überprüfen Sie den Zustand der Fähigkeit

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 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.

Capability-specific Problembehandlung

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

Falls es sich um eine Funktion handelt, ACTIVE aber Ressourcen werden nicht erstellt oder aktualisiert:

  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