Dépannage des fonctionnalités EKS - Amazon EKS

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

Cette rubrique fournit des conseils de dépannage généraux pour les fonctionnalités EKS, notamment des vérifications de l'état des fonctionnalités, des problèmes courants et des liens vers des solutions de dépannage spécifiques aux fonctionnalités.

Note

Les fonctionnalités EKS sont entièrement gérées et exécutées en dehors de votre cluster. Vous n'avez pas accès aux journaux ni aux espaces de noms des contrôleurs. Le dépannage se concentre sur l'état des capacités, l'état des ressources et la configuration.

Approche générale du dépannage

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é

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

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

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

Vérifier l'état des capacités

Toutes les fonctionnalités EKS fournissent des informations sur l'état de santé via la console EKS et l'describe-capabilityAPI.

Console :

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

  2. Sélectionnez le nom de votre cluster.

  3. Sélectionnez l’onglet Observabilité.

  4. Sélectionnez Surveiller le cluster.

  5. 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 des capacités (CREATINGACTIVE,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

CRÉATION : La capacité est en cours de configuration.

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

Les fonctionnalités EKS créent et gèrent des définitions de ressources personnalisées Kubernetes (CRDs) 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

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

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

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 pour les détails de configuration.

Résolution des problèmes spécifiques aux capacités

Pour obtenir des conseils de dépannage détaillés spécifiques à chaque type de fonctionnalité :

Problèmes courants liés à toutes les fonctionnalités

Capacité bloquée dans l'état CREATING

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'
  2. Vérifiez que le rôle IAM existe et que la politique de confiance est correcte

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

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

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

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

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

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

L'état des capacités montre des problèmes

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

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

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

Étapes suivantes