

 **Aidez à améliorer cette page** 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien **Modifier cette page sur** qui se trouve dans le volet droit de chaque page.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Dépannage des fonctionnalités EKS
<a name="capabilities-troubleshooting"></a>

**Note**  
Les fonctionnalités EKS sont entièrement gérées et exécutées en dehors de votre cluster. Vous n'avez pas d'accès direct aux espaces de noms des contrôleurs. Le dépannage se concentre sur l'état des fonctionnalités, l'état des ressources, la configuration et les journaux du contrôleur. Vous pouvez configurer la diffusion du journal du contrôleur pour avoir une meilleure visibilité sur le comportement du contrôleur. Consultez [Accédez aux journaux du contrôleur EKS Capabilities](capabilities-controller-logs.md).

## Approche générale du dépannage
<a name="_general_troubleshooting_approach"></a>

Pour résoudre les problèmes liés aux fonctionnalités EKS, suivez cette approche générale :

1.  **Vérifier l'état des capacités** : `aws eks describe-capability` à utiliser pour consulter l'état des capacités et les problèmes de santé

1.  **Vérifier le statut des ressources** : vérifiez les ressources Kubernetes (CRD) que vous avez créées pour connaître les conditions de statut et les événements

1.  **Vérifiez les journaux du contrôleur** : si la livraison des journaux est configurée, interrogez les journaux du contrôleur pour détecter les erreurs et les détails du rapprochement

1.  **Vérifiez les autorisations IAM** : assurez-vous que le rôle de capacité dispose des autorisations nécessaires

1.  **Vérifier la configuration** : vérifier que la configuration spécifique à la capacité est correcte

## Utiliser les journaux du contrôleur pour le dépannage
<a name="_use_controller_logs_for_troubleshooting"></a>

Si vous avez configuré la livraison des journaux du contrôleur (voir[Accédez aux journaux du contrôleur EKS Capabilities](capabilities-controller-logs.md)), vous pouvez interroger les journaux pour identifier les erreurs de réconciliation, les conflits de ressources et les problèmes de configuration.

### Erreurs de requête sur tous les contrôleurs
<a name="_query_errors_across_all_controllers"></a>

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

### Filtrer les journaux pour un contrôleur de service ACK spécifique
<a name="_filter_logs_for_a_specific_ack_service_controller"></a>

Utilisez le `controllerGroup` champ pour isoler les journaux d'un contrôleur de service ACK spécifique :

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

Pour filtrer davantage par type de ressource (par exemple, uniquement `SecurityGroup` les journaux provenant du contrôleur EC2) :

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

### Filtrer les journaux pour une application Argo CD spécifique
<a name="_filter_logs_for_a_specific_argo_cd_application"></a>

Utilisez le `application` champ pour isoler les journaux d'une application Argo CD particulière :

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

### Suivez le rapprochement pour une ressource spécifique
<a name="_track_reconciliation_for_a_specific_resource"></a>

Utilisez le `reconcileID` champ pour suivre un cycle de réconciliation unique :

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

### Modèles de journalisation courants indiquant les problèmes
<a name="_common_log_patterns_indicating_issues"></a>
+  **Erreurs de réconciliation répétées** : le contrôleur ne parvient pas à atteindre l'état souhaité pour une ressource. Vérifiez le `error` champ pour obtenir des informations telles que les échecs d'autorisation IAM ou les configurations de ressources non valides.
+  **« Erreur de réconciliation » avec erreurs d' AWS API** : il se peut que le rôle de capacité ne dispose pas d'autorisations pour une opération de AWS service spécifique. Passez en revue le message d'erreur et mettez à jour les politiques IAM en conséquence.
+  **Aucune entrée de journal pour une ressource** : si vous ne voyez pas les journaux d'une ressource que vous vous attendez à ce que le contrôleur réconcilie, vérifiez que la fonctionnalité existe `ACTIVE` et que la ressource existe dans un espace de noms auquel la fonctionnalité peut accéder.

## Vérifier l'état de santé des capacités
<a name="_check_capability_health"></a>

Toutes les fonctionnalités EKS fournissent des informations sur l'état de santé par le biais de la console EKS et de l'`describe-capability`API.

 **Console** :

1. Ouvrez la console Amazon EKS à l'adresse https://console.aws.amazon.com/eks/home \#/clusters.

1. Sélectionnez le nom de votre cluster.

1. Sélectionnez l’onglet **Observabilité**.

1. Sélectionnez **Surveiller le cluster**.

1. Choisissez l'onglet **Fonctionnalités** pour afficher l'état et l'état de toutes les fonctionnalités.

L'onglet Fonctionnalités indique :
+ Nom et type de capacité
+ État actuel
+ Problèmes de santé, avec description

 ** AWS CLI** :

```
aws eks describe-capability \
  --region {{region-code}} \
  --cluster-name {{my-cluster}} \
  --capability-name {{my-capability-name}}
```

La réponse inclut :
+  **statut** : État actuel de la capacité (`CREATING``ACTIVE`,`UPDATING`,`DELETING`,`CREATE_FAILED`,`UPDATE_FAILED`)
+  **santé** : informations relatives à l'état de santé, y compris les éventuels problèmes détectés par la fonctionnalité

## Statuts de capacité communs
<a name="_common_capability_statuses"></a>

 **CRÉATION : La** capacité est en cours de mise en place.

 **ACTIF** : La fonctionnalité fonctionne et est prête à être utilisée. Si les ressources ne fonctionnent pas comme prévu, vérifiez l'état des ressources et les autorisations IAM.

 **MISE À JOUR** : Les modifications de configuration sont en cours d'application. Attendez que le statut revienne à`ACTIVE`.

 **CREATE\_FAILED** ou **UPDATE\_FAILED : le programme d'installation ou de mise à jour a** rencontré une erreur. Consultez la section sur la santé pour plus de détails. Causes courantes :
+ Politique de confiance des rôles IAM incorrecte ou manquante
+ Le rôle IAM n'existe pas ou n'est pas accessible
+ Problèmes d'accès au cluster
+ Paramètres de configuration non valides

## Vérifier l'état des ressources Kubernetes
<a name="_verify_kubernetes_resource_status"></a>

Les fonctionnalités EKS créent et gèrent les définitions de ressources personnalisées (CRD) Kubernetes dans votre cluster. Lors du dépannage, vérifiez l'état des ressources que vous avez créées :

```
# 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}}
```

Les conditions d'état des ressources fournissent des informations sur :
+ Si la ressource est prête
+ Toute erreur rencontrée
+ État actuel du rapprochement

## Vérifiez les autorisations IAM et l'accès au cluster
<a name="_review_iam_permissions_and_cluster_access"></a>

De nombreux problèmes de capacité sont dus à des problèmes d'autorisation IAM ou à une configuration d'accès au cluster manquante. Vérifiez à la fois les autorisations du rôle de capacité et les entrées d'accès au cluster.

### Vérifier les autorisations des rôles IAM
<a name="_check_iam_role_permissions"></a>

Vérifiez que le rôle de capacité dispose des autorisations nécessaires :

```
# 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'
```

La politique de confiance doit permettre au principal du `capabilities.eks.amazonaws.com` service :

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

### Vérifiez les entrées d'accès et les politiques d'accès d'EKS
<a name="_check_eks_access_entries_and_access_policies"></a>

Toutes les fonctionnalités nécessitent des entrées d'accès et des politiques d'accès EKS appropriées sur le cluster sur lequel elles fonctionnent.

 **Vérifiez que l'entrée d'accès existe** :

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

Recherchez l'ARN du rôle de capacité dans la liste. Si elle est absente, la fonctionnalité ne peut pas accéder au cluster.

 **Vérifiez les politiques d'accès jointes à l'entrée** :

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

Toutes les fonctionnalités nécessitent des politiques d'accès appropriées :
+  **ACK** : nécessite des autorisations pour créer et gérer des ressources Kubernetes
+  **kro** : nécessite des autorisations pour créer et gérer des ressources Kubernetes
+  **Argo CD** : nécessite des autorisations pour créer et gérer des applications, et nécessite des entrées d'accès sur les clusters cibles distants pour les déploiements multi-clusters

 **Pour les déploiements multi-clusters Argo CD** :

En cas de déploiement sur des clusters distants, vérifiez que le rôle de capacité possède une entrée d'accès sur chaque cluster cible :

```
# 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}}
```

Si l'entrée d'accès est absente sur un cluster cible, Argo CD ne peut pas y déployer d'applications. Voir [Enregistrer les clusters cibles](argocd-register-clusters.md) pour les détails de configuration.

## Capability-specific résolution des problèmes
<a name="_capability_specific_troubleshooting"></a>

Pour obtenir des conseils de dépannage détaillés spécifiques à chaque type de fonctionnalité :
+  [Résoudre les problèmes liés aux fonctionnalités ACK](ack-troubleshooting.md)- Résoudre les problèmes liés à la création de ressources ACK, aux autorisations IAM et à l'accès entre comptes
+  [Résoudre les problèmes liés aux fonctionnalités d'Argo CD](argocd-troubleshooting.md)- Résoudre les problèmes de synchronisation des applications, d'authentification des référentiels et de déploiements multiclusters
+  [Résoudre les problèmes liés aux fonctionnalités Kro](kro-troubleshooting.md)- Résolution des problèmes ResourceGraphDefinitions, expressions CEL et autorisations RBAC

## Problèmes courants liés à toutes les fonctionnalités
<a name="_common_issues_across_all_capabilities"></a>

### Capacité bloquée dans l'état CREATING
<a name="_capability_stuck_in_creating_state"></a>

Si une capacité reste `CREATING` active plus longtemps que prévu :

1. Vérifiez l'état des fonctionnalités pour détecter des problèmes spécifiques dans la console (**Observabilité** > **Surveiller le cluster** > onglet **Fonctionnalités**) ou à l'aide de la AWS CLI :

   ```
   aws eks describe-capability \
     --region {{region-code}} \
     --cluster-name {{my-cluster}} \
     --capability-name {{my-capability-name}} \
     --query 'capability.health'
   ```

1. Vérifiez que le rôle IAM existe et que la politique de confiance est correcte

1. Assurez-vous que votre cluster est accessible et sain

1. Vérifiez s'il existe des problèmes au niveau du cluster susceptibles d'empêcher la configuration des fonctionnalités

### Ressources non créées ou mises à jour
<a name="_resources_not_being_created_or_updated"></a>

Si la fonctionnalité existe `ACTIVE` mais que les ressources ne sont pas créées ou mises à jour :

1. Vérifiez l'état de la ressource pour détecter les conditions d'erreur

1. Vérifiez les autorisations IAM pour les AWS services (ACK) ou les référentiels spécifiques (Argo CD)

1. Vérifiez les autorisations RBAC pour créer des ressources sous-jacentes (kro)

1. Vérifiez les spécifications des ressources pour détecter les erreurs de validation

### L'état des capacités montre des problèmes
<a name="_capability_health_shows_issues"></a>

Il `describe-capability` présente des problèmes de santé :

1. Lisez attentivement les descriptions du problème : elles indiquent souvent le problème spécifique

1. Corriger la cause première (autorisations IAM, erreurs de configuration, etc.)

1. La fonctionnalité sera automatiquement rétablie une fois le problème résolu

## Étapes suivantes
<a name="_next_steps"></a>
+  [Utilisation des ressources en matière de capacités](working-with-capabilities.md)- Gérer les ressources en matière de capacités
+  [Résoudre les problèmes liés aux fonctionnalités ACK](ack-troubleshooting.md)- ACK-specific résolution des problèmes
+  [Résoudre les problèmes liés aux fonctionnalités d'Argo CD](argocd-troubleshooting.md)- Résolution des problèmes liés à Argo CD-specific 
+  [Résoudre les problèmes liés aux fonctionnalités Kro](kro-troubleshooting.md)- résolution des problèmes spécifiques à Kro
+  [Considérations relatives à la sécurité relatives aux fonctionnalités EKS](capabilities-security.md)- Meilleures pratiques en matière de sécurité en matière de fonctionnalités