

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

# Probleme mit KRO-Funktionen beheben
<a name="kro-troubleshooting"></a>

Dieses Thema enthält Anleitungen zur Fehlerbehebung für die EKS-Funktion für KRO, einschließlich Funktionsprüfungen, RBAC-Berechtigungen, CEL-Ausdrucksfehler und Probleme bei der Ressourcenzusammensetzung.

**Anmerkung**  
EKS-Funktionen werden vollständig verwaltet und außerhalb Ihres Clusters ausgeführt. Sie haben keinen Zugriff auf Controller-Logs oder den `kro-system` Namespace. Die Fehlerbehebung konzentriert sich auf den Funktionsstatus, die RBAC-Konfiguration und den Ressourcenstatus.

## Die Funktion ist AKTIV, funktioniert aber ResourceGraphDefinitions nicht
<a name="_capability_is_active_but_resourcegraphdefinitions_arent_working"></a>

Wenn Ihre Kro-Fähigkeit `ACTIVE` den Status anzeigt, aber ResourceGraphDefinitions keine zugrunde liegenden Ressourcen erstellt werden, überprüfen Sie den Zustand der Fähigkeit, die RBAC-Berechtigungen und den Ressourcenstatus.

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

Sie können Funktionszustands- und Statusprobleme in der EKS-Konsole oder über die AWS CLI anzeigen.

 **Konsole**:

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

1. Wählen Sie Ihren Clusternamen aus.

1. Wählen Sie den Registerkarte **Beobachtbarkeit**.

1. Wählen Sie **Cluster überwachen** aus.

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

# Look for issues in the health section
```

 **Häufige Ursachen:**
+  **RBAC-Berechtigungen fehlen**: Kro hat keine Berechtigungen, um zugrunde liegende Kubernetes-Ressourcen zu erstellen
+  **Ungültige CEL-Ausdrücke**: Syntaxfehler in ResourceGraphDefinition
+  **Ressourcenabhängigkeiten**: Abhängige Ressourcen sind nicht bereit
+  **Schemavalidierung**: Die Instanz entspricht nicht den RGD-Schemaanforderungen

 **Überprüfen Sie die RBAC-Berechtigungen**:

```
# Check if capability has cluster admin policy
kubectl get accessentry -A | grep kro
```

Wenn die Funktion nicht über die erforderlichen Berechtigungen verfügt, verknüpfen Sie sie `AmazonEKSClusterAdminPolicy` mit dem Zugriffseintrag der KRO-Funktion, oder erstellen Sie restriktivere RBAC-Richtlinien für den Produktionsgebrauch. Details dazu finden Sie unter [Kro-Berechtigungen konfigurieren](kro-permissions.md).

 **Status überprüfen: ResourceGraphDefinition **

```
# List all RGDs
kubectl get resourcegraphdefinition

# Describe specific RGD
kubectl describe resourcegraphdefinition my-rgd

# Check for validation errors
kubectl get resourcegraphdefinition my-rgd -o jsonpath='{.status.conditions}'
```

ResourceGraphDefinitions haben drei wichtige Statusbedingungen:
+  `ResourceGraphAccepted`- Ob das RGD die Validierung bestanden hat (CEL-Syntax, Typprüfung, Existenz des Felds)
+  `KindReady`- Ob die CRD für Ihre benutzerdefinierte API generiert und registriert wurde
+  `ControllerReady`- Ob Kro aktiv nach Instanzen Ihrer benutzerdefinierten API Ausschau hält

Falls ja `ResourceGraphAccepted``False`, überprüfen Sie die Zustandsmeldung auf Validierungsfehler wie unbekannte Felder, nicht übereinstimmende Typen oder zirkuläre Abhängigkeiten.

## Instanzen wurden erstellt, aber die zugrunde liegenden Ressourcen werden nicht angezeigt
<a name="_instances_created_but_underlying_resources_not_appearing"></a>

Wenn benutzerdefinierte Ressourceninstanzen existieren, die zugrunde liegenden Kubernetes-Ressourcen (Bereitstellungen, Dienste, ConfigMaps) jedoch nicht erstellt werden, überprüfen Sie, ob kro über die erforderlichen Berechtigungen verfügt, und überprüfen Sie, ob Kompositionsfehler vorliegen.

 **Überprüfen Sie den Instanzstatus:**

```
# Describe the instance (replace with your custom resource kind and name)
kubectl describe custom-kind
         my-instance

# View instance events
kubectl get events --field-selector involvedObject.name=my-instance

# Check instance status conditions
kubectl get custom-kind
         my-instance -o jsonpath='{.status.conditions}'

# Check instance state
kubectl get custom-kind
         my-instance -o jsonpath='{.status.state}'
```

Instanzen haben ein `state` Feld, das den Status auf hoher Ebene anzeigt:
+  `ACTIVE`— Die Instanz wird erfolgreich ausgeführt
+  `IN_PROGRESS`- Die Instanz wird verarbeitet oder abgeglichen
+  `FAILED`- Die Instanz konnte nicht abgeglichen werden
+  `DELETING`- Die Instanz wird gelöscht
+  `ERROR`- Bei der Verarbeitung ist ein Fehler aufgetreten

Instanzen haben außerdem vier Statusbedingungen:
+  `InstanceManaged`- Finalizer und Labels sind richtig gesetzt
+  `GraphResolved`- Laufzeitdiagramm erstellt und Ressourcen aufgelöst
+  `ResourcesReady`- Alle Ressourcen wurden erstellt und sind bereit
+  `Ready`- Allgemeiner Zustand der Instanz (wird nur erreicht`True`, wenn alle Unterbedingungen erfüllt sind`True`)

Konzentrieren Sie sich auf den `Ready` Zustand, um den Zustand der Instanz zu bestimmen. Falls `Ready` ja`False`, überprüfen Sie anhand der Unterbedingungen, welche Phase fehlgeschlagen ist.

 **Überprüfen Sie die RBAC-Berechtigungen**:

Für die Kro-Funktion sind Berechtigungen erforderlich, um die zugrunde liegenden Kubernetes-Ressourcen zu erstellen, die in Ihrem definiert sind. ResourceGraphDefinitions

```
# Check if the capability has the AmazonEKSClusterAdminPolicy
kubectl get accessentry -A | grep kro
```

Wenn Berechtigungen fehlen, verknüpfen Sie sie `AmazonEKSClusterAdminPolicy` mit dem Zugriffseintrag der Kro-Fähigkeit oder erstellen Sie restriktivere RBAC-Richtlinien für den Produktionsgebrauch. Details dazu finden Sie unter [Kro-Berechtigungen konfigurieren](kro-permissions.md).

## Fehler bei CEL-Ausdrücken
<a name="_cel_expression_errors"></a>

Fehler bei CEL-Ausdrücken werden bei der ResourceGraphDefinition Erstellung erkannt, nicht bei der Erstellung von Instances. Kro validiert die gesamte CEL-Syntax, überprüft Ausdrücke anhand von Kubernetes-Schemas und überprüft das Vorhandensein von Feldern, wenn Sie die RGD erstellen.

 **Häufige Fehler** bei der CEL-Validierung:
+  **Undefinierter Feldverweis**: Verweisen auf ein Feld, das im Schema oder in der Ressource nicht vorhanden ist
+  **Typkonflikt**: Der Ausdruck gibt einen falschen Typ zurück (z. B. eine Zeichenfolge, bei der eine Ganzzahl erwartet wurde)
+  **Ungültige Syntax**: Fehlende Klammern, Anführungszeichen oder Operatoren im CEL-Ausdruck
+  **Unbekannter Ressourcentyp**: Verweist auf eine CRD, die im Cluster nicht vorhanden ist

 **Überprüfen Sie den RGD-Validierungsstatus**:

```
# Check if RGD was accepted
kubectl get resourcegraphdefinition my-rgd -o jsonpath='{.status.conditions[?(@.type=="ResourceGraphAccepted")]}'

# View detailed validation errors
kubectl describe resourcegraphdefinition my-rgd
```

Falls ja `ResourceGraphAccepted``False`, enthält die Zustandsmeldung den Validierungsfehler.

 **Beispiel für gültige CEL-Ausdrücke**:

```
# Reference schema field
${schema.spec.appName}

# Conditional expression
${schema.spec.replicas > 1}

# String template (expressions must return strings)
name: "${schema.spec.appName}-service"

# Standalone expression (can be any type)
replicas: ${schema.spec.replicaCount}

# Resource reference
${deployment.status.availableReplicas}

# Optional field access (returns null if field doesn't exist)
${configmap.data.?DATABASE_URL}
```

## Ressourcenabhängigkeiten werden nicht aufgelöst
<a name="_resource_dependencies_not_resolving"></a>

kro leitet automatisch Abhängigkeiten aus CEL-Ausdrücken ab und erstellt Ressourcen in der richtigen Reihenfolge. Wenn Ressourcen nicht wie erwartet erstellt werden, überprüfen Sie die Reihenfolge der Abhängigkeiten und die Verfügbarkeit der Ressourcen.

 **Berechnete Erstellungsreihenfolge anzeigen**:

```
# See the order kro will create resources
kubectl get resourcegraphdefinition my-rgd -o jsonpath='{.status.topologicalOrder}'
```

Dies zeigt die berechnete Reihenfolge auf der Grundlage von CEL-Ausdrucksverweisen zwischen Ressourcen.

 **Überprüfen Sie die Verfügbarkeit der Ressourcen:**

```
# View instance status to see which resources are ready
kubectl get custom-kind
         my-instance -o jsonpath='{.status}'

# Check specific resource status
kubectl get deployment my-deployment -o jsonpath='{.status.conditions}'
```

 **Überprüfen Sie die ReadyWhen-Bedingungen (falls verwendet)**:

Das Feld `readyWhen` ist optional. Wenn nicht angegeben, gelten Ressourcen unmittelbar nach der Erstellung als bereit. Wenn Sie `readyWhen` Bedingungen definiert haben, stellen Sie sicher, dass diese korrekt prüfen, ob die Ressourcen bereit sind:

```
resources:
  - id: deployment
    readyWhen:
      - ${deployment.status.availableReplicas == deployment.spec.replicas}
```

 **Überprüfen Sie die Ressourcenereignisse**:

```
# View events for the underlying resources
kubectl get events -n namespace --sort-by='.lastTimestamp'
```

## Fehler bei der Schemavalidierung
<a name="_schema_validation_failures"></a>

Wenn Instanzen aufgrund von Fehlern bei der Schemavalidierung nicht erstellt werden können, überprüfen Sie, ob die Instanz die RGD-Schemaanforderungen erfüllt.

 **Überprüfen Sie die Validierungsfehler**:

```
# Attempt to create instance and view error
kubectl apply -f instance.yaml

# View existing instance validation status
kubectl describe custom-kind
         my-instance | grep -A 5 "Validation"
```

 **Häufige Probleme bei der Validierung**:
+  **Erforderliche Felder fehlen**: Die Instanz stellt nicht alle erforderlichen Schemafelder bereit
+  **Typkonflikt**: Es wird eine Zeichenfolge bereitgestellt, bei der eine Ganzzahl erwartet wird
+  **Ungültiger Aufzählungswert: Es wird ein Wert** verwendet, der nicht in der Liste der zulässigen Werte steht
+  **Musterkonflikt: Die Zeichenfolge stimmt** nicht mit dem Regex-Muster überein

 **RGD-Schema überprüfen**:

```
# View the schema definition
kubectl get resourcegraphdefinition my-rgd -o jsonpath='{.spec.schema}'
```

Stellen Sie sicher, dass Ihre Instanz alle erforderlichen Felder mit den richtigen Typen bereitstellt.

## Nächste Schritte
<a name="_next_steps"></a>
+  [Überlegungen zu Kro für EKS](kro-considerations.md)- Überlegungen und bewährte Methoden zu KRO
+  [Kro-Berechtigungen konfigurieren](kro-permissions.md)- Konfigurieren Sie RBAC für Plattform- und Anwendungsteams
+  [Kro-Konzepte](kro-concepts.md)- Verstehen Sie die KRO-Konzepte und den Ressourcenlebenszyklus
+  [Problembehebung bei EKS-Funktionen](capabilities-troubleshooting.md)- Allgemeine Hinweise zur Problembehebung