Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Résoudre les problèmes liés au mode automatique d'EKS

Mode de mise au point
Résoudre les problèmes liés au mode automatique d'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.

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.

Avec le mode automatique d'EKS, vous AWS assumez une plus grande responsabilité pour les EC2 instances de votre AWS compte. EKS assume la responsabilité de l'exécution du conteneur sur les nœuds, du système d'exploitation sur les nœuds et de certains contrôleurs. Cela inclut un contrôleur de stockage par blocs, un contrôleur d'équilibrage de charge et un contrôleur de calcul.

Vous devez utiliser AWS Kubernetes APIs pour dépanner les nœuds. Vous pouvez :

Note

Le mode automatique EKS utilise des instances EC2 gérées. Vous ne pouvez pas accéder directement aux instances EC2 gérées, y compris par SSH.

Vous pouvez rencontrer les problèmes suivants qui ont des solutions spécifiques aux composants du mode automatique d'EKS :

Vous pouvez utiliser les méthodes suivantes pour dépanner les composants du mode automatique EKS :

Agent de surveillance des nœuds

Le mode automatique EKS inclut l'agent de surveillance des nœuds Amazon EKS. Vous pouvez utiliser cet agent pour consulter les informations de dépannage et de débogage relatives aux nœuds. L'agent de surveillance des nœuds publie Kubernetes events et le nœud. conditions Pour de plus amples informations, veuillez consulter Activez la réparation automatique des nœuds et étudiez les problèmes de santé des nœuds.

Obtenez la sortie de console d'une instance EC2 gérée à l'aide de la AWS EC2 CLI

Cette procédure permet de résoudre les problèmes liés au démarrage ou au niveau du noyau.

Vous devez d'abord déterminer l'ID d' EC2 instance de l'instance associée à votre charge de travail. Ensuite, utilisez la AWS CLI pour récupérer la sortie de la console.

  1. Vérifiez que vous avez kubectl installé votre cluster et que vous vous y êtes connecté

  2. (Facultatif) Utilisez le nom d'un déploiement Kubernetes pour répertorier les pods associés.

    kubectl get pods -l app=<deployment-name>
  3. Utilisez le nom du Kubernetes Pod pour déterminer l'ID d' EC2 instance du nœud associé.

    kubectl get pod <pod-name> -o wide
  4. Utilisez l'ID d' EC2 instance pour récupérer la sortie de la console.

    aws ec2 get-console-output --instance-id <instance id> --latest --output text

Obtenez les journaux des nœuds à l'aide de conteneurs de débogage et de la CLI kubectl

La méthode recommandée pour récupérer les journaux à partir d'un nœud en mode automatique EKS consiste à utiliser NodeDiagnostic des ressources. Pour ces étapes, voirRécupérez les journaux d'un nœud géré à l'aide de kubectl et S3.

Cependant, vous pouvez diffuser des journaux en direct à partir d'une instance à l'aide de la kubectl debug node commande. Cette commande lance un nouveau Pod sur le nœud que vous souhaitez déboguer, que vous pouvez ensuite utiliser de manière interactive.

  1. Lancez un conteneur de débogage. La commande suivante utilise i-01234567890123456 l'ID d'instance du nœud, -it alloue a tty et attach stdin pour une utilisation interactive et utilise le sysadmin profil du fichier kubeconfig.

    kubectl debug node/i-01234567890123456 -it --profile=sysadmin --image=public.ecr.aws/amazonlinux/amazonlinux:2023

    L'exemple qui suit illustre un résultat.

    Creating debugging pod node-debugger-i-01234567890123456-nxb9c with container debugger on node i-01234567890123456. If you don't see a command prompt, try pressing enter. bash-5.2#
  2. Depuis le shell, vous pouvez maintenant installer celui util-linux-core qui fournit la nsenter commande. nsenterÀ utiliser pour entrer l'espace de noms de montage du PID 1 (init) sur l'hôte et exécuter la journalctl commande pour diffuser les journaux depuis : kubelet

    yum install -y util-linux-core nsenter -t 1 -m journalctl -f -u kubelet

Pour des raisons de sécurité, l'image du conteneur Amazon Linux n'installe pas beaucoup de fichiers binaires par défaut. Vous pouvez utiliser la yum whatprovides commande pour identifier le package qui doit être installé pour fournir un binaire donné.

yum whatprovides ps
Last metadata expiration check: 0:03:36 ago on Thu Jan 16 14:49:17 2025. procps-ng-3.3.17-1.amzn2023.0.2.x86_64 : System and process monitoring utilities Repo : @System Matched from: Filename : /usr/bin/ps Provide : /bin/ps procps-ng-3.3.17-1.amzn2023.0.2.x86_64 : System and process monitoring utilities Repo : amazonlinux Matched from: Filename : /usr/bin/ps Provide : /bin/ps

Afficher les ressources associées au mode automatique EKS dans la AWS console

Vous pouvez utiliser la AWS console pour afficher l'état des ressources associées à votre cluster EKS Auto Mode.

  • Volumes EBS

    • Afficher les volumes du mode automatique EKS en recherchant la clé du tag eks:eks-cluster-name

  • Équilibreurs de charge

    • Afficher les équilibreurs de charge en mode automatique EKS en recherchant la clé du tag eks:eks-cluster-name

  • EC2 Instances

    • Afficher les instances du mode automatique EKS en recherchant la clé du tag eks:eks-cluster-name

Afficher les erreurs IAM dans votre AWS compte

  1. Accédez à la CloudTrail console

  2. Sélectionnez « Historique des événements » dans le volet de navigation de gauche

  3. Appliquez des filtres de code d'erreur :

    • AccessDenied

    • UnauthorizedOperation

    • InvalidClientTokenId

Recherchez les erreurs liées à votre cluster EKS. Utilisez les messages d'erreur pour mettre à jour vos entrées d'accès EKS, votre rôle IAM de cluster ou votre rôle IAM de nœud. Vous devrez peut-être associer une nouvelle politique à ces rôles avec des autorisations pour le mode automatique EKS.

Résoudre les problèmes liés à l'échec de la planification du Pod sur le nœud en mode automatique

Si les pods restent dans Pending cet état et ne sont pas programmés sur un nœud en mode auto, vérifiez si votre pod ou votre manifeste de déploiement possède unnodeSelector. Si un nodeSelector est présent, assurez-vous qu'il est utilisé eks.amazonaws.com/compute-type: auto pour être planifié sur les nœuds créés par le mode automatique EKS. Pour plus d'informations sur les étiquettes de nœuds utilisées par le mode automatique d'EKS, consultezContrôler si une charge de travail est déployée sur les nœuds du mode automatique EKS.

Résoudre les problèmes liés au fait que le nœud ne rejoint pas le cluster

Le mode automatique d'EKS configure automatiquement les nouvelles EC2 instances avec les informations correctes pour rejoindre le cluster, y compris le point de terminaison du cluster et l'autorité de certification (CA) du cluster. Cependant, ces instances peuvent toujours ne pas rejoindre le cluster EKS en tant que nœud. Exécutez les commandes suivantes pour identifier les instances qui n'ont pas rejoint le cluster :

  1. Courez kubectl get nodeclaim pour vérifier si NodeClaims c'est le casReady = False.

    kubectl get nodeclaim
  2. Exécutez kubectl describe nodeclaim <node_claim> et examinez la section État pour détecter tout problème empêchant le nœud de rejoindre le cluster.

    kubectl describe nodeclaim <node_claim>

Messages d'erreur courants :

Error getting launch template configs

Cette erreur peut s'afficher si vous définissez des balises personnalisées NodeClass avec les autorisations de rôle IAM par défaut du cluster. Consultez En savoir plus sur l'identité et l'accès en mode automatique d'EKS.

Error creating fleet

Il peut y avoir un problème d'autorisation lors de l'RunInstancesappel depuis l' EC2 API. Vérifiez AWS CloudTrail les erreurs et Rôle IAM du cluster en mode automatique Amazon EKS les autorisations IAM requises.

Détectez les problèmes de connectivité des nœuds avec le VPC Reachability Analyzer

Note

Vous êtes facturé pour chaque analyse exécutée par le VPC Reachability Analyzer. Pour plus de détails sur les tarifs, consultez la section Tarification Amazon VPC.

L'une des raisons pour lesquelles une instance n'a pas rejoint le cluster est un problème de connectivité réseau qui l'empêche d'atteindre le serveur d'API. Pour diagnostiquer ce problème, vous pouvez utiliser le VPC Reachability Analyzer pour effectuer une analyse de la connectivité entre un nœud qui ne parvient pas à rejoindre le cluster et le serveur d'API. Vous aurez besoin de deux informations :

  • ID d'instance d'un nœud qui ne peut pas rejoindre le cluster

  • Adresse IP du point de terminaison du serveur d'API Kubernetes

Pour obtenir l'ID d'instance, vous devez créer une charge de travail sur le cluster afin que le mode automatique EKS lance une EC2 instance. Cela crée également un NodeClaim objet dans votre cluster qui aura l'ID d'instance. Exécutez kubectl get nodeclaim -o yaml pour imprimer tous les éléments NodeClaims de votre cluster. Chacun NodeClaim contient l'ID d'instance sous forme de champ, puis de nouveau dans le ProviderID :

kubectl get nodeclaim -o yaml

L'exemple qui suit illustre un résultat.

nodeName: i-01234567890123456 providerID: aws:///us-west-2a/i-01234567890123456

Vous pouvez déterminer le point de terminaison de votre serveur d'API Kubernetes en exécutant. kubectl get endpoint kubernetes -o yaml Les adresses se trouvent dans le champ des adresses :

kubectl get endpoints kubernetes -o yaml

L'exemple qui suit illustre un résultat.

apiVersion: v1 kind: Endpoints metadata: name: kubernetes namespace: default subsets: - addresses: - ip: 10.0.143.233 - ip: 10.0.152.17 ports: - name: https port: 443 protocol: TCP

Avec ces deux informations, vous pouvez effectuer l'analyse s. Accédez d'abord à l'Analyzer de Reachability VPC dans le.AWS Management Console

  1. Cliquez sur « Créer et analyser le chemin »

  2. Donnez un nom à l'analyse (par exemple « Node Join Failure »)

  3. Pour le « Type de source », sélectionnez « Instances »

  4. Entrez l'ID d'instance du nœud défaillant comme « Source »

  5. Pour le « Path Destination », sélectionnez « Adresse IP »

  6. Entrez l'une des adresses IP du serveur API comme « adresse de destination »

  7. Développez la section « Configuration d'en-têtes de paquets supplémentaires »

  8. Entrez un « port de destination » de 443

  9. Sélectionnez « Protocol » comme TCP s'il n'est pas déjà sélectionné

  10. Cliquez sur « Créer et analyser le chemin »

  11. L'analyse peut prendre quelques minutes. Si les résultats de l'analyse indiquent un échec d'accessibilité, ils indiqueront l'emplacement de la défaillance sur le chemin réseau afin que vous puissiez résoudre le problème.

Partage de volumes entre les pods

Les nœuds en mode automatique EKS sont configurés SELinux en mode d'application, ce qui permet une meilleure isolation entre les pods exécutés sur le même nœud. Lorsque cette option SELinux est activée, la plupart des pods non privilégiés se verront automatiquement appliquer leur propre étiquette de sécurité multi-catégories (MCS). Cette étiquette MCS est unique par pod et est conçue pour garantir qu'un processus dans un pod ne peut pas manipuler un processus dans un autre pod ou sur l'hôte. Même si un pod étiqueté s'exécute en tant que root et a accès au système de fichiers hôte, il ne pourra pas manipuler les fichiers, effectuer des appels système sensibles sur l'hôte, accéder au runtime du conteneur ou obtenir la clé secrète de Kubelet.

De ce fait, vous pouvez rencontrer des problèmes lorsque vous essayez de partager des données entre des pods. Par exemple, un mode PersistentVolumeClaim d'accès de n'ReadWriteOnceautorisera toujours pas plusieurs pods à accéder simultanément au volume.

Pour activer ce partage entre les pods, vous pouvez utiliser les pods seLinuxOptions pour configurer la même étiquette MCS sur ces pods. Dans cet exemple, nous attribuons les trois catégories c123,c456,c789 au Pod. Cela n'entrera pas en conflit avec les catégories attribuées automatiquement aux pods sur le nœud, car seules deux catégories leur seront attribuées.

securityContext: seLinuxOptions: level: "s0:c123,c456,c789"

Résoudre les problèmes liés aux manettes incluses en mode automatique

Si vous rencontrez un problème avec une manette, vous devez rechercher :

Rubrique suivante :

Clusters

Rubrique précédente :

Réseaux
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.