View a markdown version of this page

Probleme mit ACK-Funktionen beheben - 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.

Probleme mit ACK-Funktionen beheben

Anmerkung

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

Die Funktion ist AKTIV, aber es werden keine Ressourcen erstellt

Wenn Ihre ACK-Fähigkeit ACTIVE den Status anzeigt, aber keine Ressourcen erstellt werden AWS, überprüfen Sie den Zustand der Fähigkeit, den Ressourcenstatus und die IAM-Berechtigungen.

Überprüfen Sie den Zustand der Fähigkeit:

Sie können Probleme mit dem Status und dem Status von Fähigkeiten in der EKS-Konsole oder mithilfe der AWS CLI anzeigen.

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.

AWS CLI:

# View capability status and health aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack # Look for issues in the health section

Häufige Ursachen:

  • IAM-Berechtigungen fehlen: Der Capability Role fehlen die Berechtigungen für den Dienst AWS

  • Falscher Namespace: Ressourcen, die im Namespace ohne den richtigen Namen erstellt wurden IAMRoleSelector

  • Ungültige Ressourcenspezifikation: Überprüfen Sie die Bedingungen für den Ressourcenstatus auf Validierungsfehler

  • API-Drosselung: Die AWS API-Ratenlimits werden erreicht

  • Zulassungs-Webhooks: Zulassungs-Webhooks blockieren den Controller daran, den Ressourcenstatus zu patchen

Überprüfen Sie den Ressourcenstatus:

# Describe the resource to see conditions and events kubectl describe bucket my-bucket -n default # Look for status conditions kubectl get bucket my-bucket -n default -o jsonpath='{.status.conditions}' # View resource events kubectl get events --field-selector involvedObject.name=my-bucket -n default

Überprüfen Sie die IAM-Berechtigungen:

# View the Capability Role's policies aws iam list-attached-role-policies --role-name my-ack-capability-role aws iam list-role-policies --role-name my-ack-capability-role # Get specific policy details aws iam get-role-policy --role-name my-ack-capability-role --policy-name policy-name

Ressourcen, erstellt in AWS aber nicht in Kubernetes angezeigt

ACK verfolgt nur Ressourcen, die es über Kubernetes-Manifeste erstellt. Verwenden Sie die Adoptionsfunktion, um vorhandene AWS Ressourcen mit ACK zu verwalten.

apiVersion: s3.services.k8s.aws/v1alpha1 kind: Bucket metadata: name: existing-bucket annotations: services.k8s.aws/adoption-policy: "adopt-or-create" spec: name: my-existing-bucket-name

Weitere Informationen zur Einführung von Ressourcen finden Sie unterACK-Konzepte.

Cross-account Ressourcen werden nicht erstellt

Wenn Ressourcen nicht in einem AWS Zielkonto erstellt werden, wenn Sie IAM-Role Selectors verwenden, überprüfen Sie die Vertrauensstellung und IAMRoleSelector Konfiguration.

Überprüfen Sie die Vertrauensbeziehung:

# Check the trust policy in the target account role aws iam get-role --role-name cross-account-ack-role --query 'Role.AssumeRolePolicyDocument'

Die Vertrauensrichtlinie muss es der Capability Role des Quellkontos ermöglichen, diese zu übernehmen.

IAMRoleSelector Konfiguration bestätigen:

# List IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Describe specific selector kubectl describe iamroleselector my-selector

Überprüfen Sie die Ausrichtung des Namespaces:

IAMRoleSelectors sind Ressourcen im Clusterbereich, zielen aber auf bestimmte Namespaces ab. Stellen Sie sicher, dass sich Ihre ACK-Ressourcen in einem Namespace befinden, der dem Namespace-Selektor von entspricht: IAMRoleSelector

# Check resource namespace kubectl get bucket my-cross-account-bucket -n production # List all IAMRoleSelectors (cluster-scoped) kubectl get iamroleselector # Check which namespace the selector targets kubectl get iamroleselector my-selector -o jsonpath='{.spec.namespaceSelector}'

Zustand überprüfen: IAMRoleSelected

Stellen Sie sicher, dass der erfolgreich Ihrer Ressource zugeordnet IAMRoleSelector wurde, indem Sie die ACK.IAMRoleSelected Bedingung überprüfen:

# Check if IAMRoleSelector was matched kubectl get bucket my-cross-account-bucket -n production -o jsonpath='{.status.conditions[?(@.type=="ACK.IAMRoleSelected")]}'

Wenn die Bedingung zutrifft False oder fehlt, IAMRoleSelector stimmt der Namespace-Selektor der Ressource nicht mit dem Namespace der Ressource überein. Stellen Sie sicher, dass der Selektor mit den namespaceSelector Namespace-Bezeichnungen Ihrer Ressource übereinstimmt.

Überprüfen Sie die Berechtigungen für Capability Role:

Die Anforderungen sts:AssumeRole und sts:TagSession Berechtigungen der Capability-Rolle für die Zielkonto-Rolle:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["sts:AssumeRole", "sts:TagSession"], "Resource": "arn:aws:iam::444455556666:role/cross-account-ack-role" } ] }

Eine ausführliche kontoübergreifende Konfiguration finden Sie unterACK-Berechtigungen konfigurieren.

Nächste Schritte