View a markdown version of this page

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

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 livraison du journal du contrôleur pour obtenir une meilleure visibilité sur le comportement du contrôleur. Consultez Accédez aux journaux du contrôleur EKS Capabilities.

Approche générale de résolution des problèmes

Lors de la résolution des problèmes liés aux fonctionnalités EKS, suivez cette approche générale :

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

  2. Vérifiez l'état des ressources  : vérifiez les ressources Kubernetes (CRD) que vous avez créées pour connaître les conditions de statut et les événements

  3. Consultez 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 de réconciliation

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

  5. Vérifiez la configuration  : vérifiez que la configuration spécifique à la fonctionnalité est correcte

Utiliser les journaux du contrôleur pour résoudre les problèmes

Si vous avez configuré la livraison des journaux du contrôleur (voirAccédez aux journaux du contrôleur EKS Capabilities), vous pouvez interroger les journaux pour identifier les erreurs de rapprochement, les conflits de ressources et les problèmes de configuration.

Erreurs de requête sur tous les contrôleurs

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

Journaux de filtrage pour un contrôleur de service ACK spécifique

Utilisez ce 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 du contrôleur EC2) :

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

Journaux de filtrage pour une application Argo CD spécifique

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

Utilisez le reconcileID champ pour suivre un cycle de rapprochement unique :

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

Modèles de journalisation courants indiquant des problèmes

  • Erreurs de rapprochement répétées  : le contrôleur ne parvient pas à atteindre l'état souhaité pour une ressource. Consultez le error champ pour obtenir des informations telles que les échecs d'autorisation IAM ou les configurations de ressources non valides.

  • « Erreur de rapprochement » avec erreurs d' AWS API  : le rôle de capacité ne dispose peut-être pas d'autorisations pour l'opération de AWS service spécifique. Consultez 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 attendez du contrôleur, 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 des capacités

Toutes les fonctionnalités EKS fournissent des informations 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. Cliquez sur l'onglet Capacités pour afficher l'état et l'état de toutes les fonctionnalités.

L'onglet Capacités affiche les informations suivantes :

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

  • status  : État de capacité actuel (CREATINGACTIVE,UPDATING,DELETING,CREATE_FAILED,UPDATE_FAILED)

  • santé  : informations sur la santé, y compris tout problème détecté par la capacité

Statuts de capacité communs

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

ACTIF  : La fonctionnalité est en cours d'exécution et 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  : Des modifications de configuration sont en cours d'application. Attendez que le statut revienne àACTIVE.

CREATE_FAILED ou UPDATE_FAILED  : une erreur a été détectée lors de l'installation ou de la mise à jour. 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

Les fonctionnalités EKS permettent de créer et de gérer des définitions de ressources personnalisées (CRD) Kubernetes dans votre cluster. Lors de la résolution des problèmes, 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 relatives à l'état des ressources fournissent des informations sur :

  • Si la ressource est prête

  • Toutes les erreurs rencontrées

  • État de réconciliation actuel

Vérifiez les autorisations IAM et l'accès au cluster

De nombreux problèmes de fonctionnalités 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érifiez les autorisations de rôle 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 capabilities.eks.amazonaws.com responsable du 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 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 opèrent.

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 Capability Role dans la liste. Si cette fonctionnalité est manquante, elle 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 des 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. Consultez Enregistrer les clusters cibles les détails de configuration.

Capability-specific résolution des problèmes

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 CREATION

Si une capacité reste en CREATING état plus longtemps que prévu :

  1. Vérifiez l'état des fonctionnalités pour résoudre des problèmes spécifiques dans la console (Observabilité > Monitor cluster > onglet Capabilities) ou à l'aide de l' AWS interface de ligne de commande :

    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 en bon état

  4. Vérifiez tout problème au niveau du cluster qui pourrait 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 les conditions d'erreur

  2. Vérifiez les autorisations IAM pour les AWS services spécifiques (ACK) ou les référentiels (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 présente des problèmes

Si cela describe-capability montre des problèmes de santé :

  1. Lisez attentivement les descriptions des problèmes ; elles indiquent souvent le problème spécifique

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