Pourquoi mon groupe de nœuds Amazon EKS est-il à l'état Dégradé ?

Lecture de 10 minute(s)
0

Le groupe de nœuds gérés de mon cluster Amazon Elastic Kubernetes Service (Amazon EKS) est à l'état Dégradé.

Résolution

Effectuez les actions de dépannage suivantes en fonction du message d'erreur que vous recevez dans NodegroupHealth.

AccessDenied

L'erreur AccessDenied (Accès refusé) se produit lorsqu'Amazon EKS ou l'un de vos nœuds gérés ne parvient pas à s'authentifier ou à autoriser sur le serveur API de votre cluster Kubernetes. Vous recevez une erreur similaire à celle de l’exemple suivant :

« Your worker nodes do not have access to the cluster. Verify if the node instance role is present and correctly configured in the aws-auth ConfigMap. » (Vos nœuds de composant master n'ont pas accès au cluster. Vérifiez si le rôle d’instance du nœud est présent et correctement configuré dans le ConfigMap aws-auth.)

Pour résoudre ce problème, exécutez la commande suivante pour confirmer que les autorisations de rôle d'instance de nœud sont correctes dans aws-auth configmap :

kubectl get configmap aws-auth -n kube-system -o yaml

Ou vérifiez que vous avez correctement mappé le rôle de nœud à une entrée d’accès.

Votre rôle d'instance de nœud de composant master doit être présent et correctement configuré. Assurez-vous de mapper le rôle de nœud uniquement à system:bootstrappers ou system:nodes. Il n'est pas recommandé de mapper le rôle de nœud au groupe system:masters.

Vous recevez également des erreurs AccessDenied lorsque le rôle qui effectue des opérations sur les groupes de nœuds gérés ne dispose pas des autorisations eks:node-manager ClusterRole ou ClusterRoleBinding. Pour résoudre ce problème, mettez à jour vos autorisations de rôle.

Si vous utilisez une Amazon Machine Image (AMI) Windows privée pour lancer un groupe de nœuds gérés, le message d'erreur Non autorisé pour les images peut s'afficher. Lorsqu'AWS lance une nouvelle AMI Windows, AWS rend privées toutes les AMI datant de moins de 4 mois. Pour résoudre ce problème, consultez la section Non autorisé pour les images.

AmiIdNotFound

L'erreur AmiIdNotFound se produit lorsqu'Amazon EKS ne trouve pas l'ID d’AMI associé à votre modèle de lancement. Vous recevez une erreur similaire à celle de l’exemple suivant :

« AmiIdNotFound: The ami id '[ami-0cxx]' does not exist » (ID d’AMI introuvable : L’id d’ami '[ami-0cxx]' n’existe pas)

Pour résoudre ce problème, assurez-vous que l'ID d’AMI que vous avez ajouté à votre modèle de lancement personnalisé existe. Assurez-vous également de l'avoir partagé avec votre compte AWS.

AutoScalingGroupNotFound

L'erreur AutoScalingGroupNotFound se produit lorsqu'Amazon EKS ne trouve pas le groupe Auto Scaling Amazon Elastic Compute Cloud (EC2) associé au groupe de nœuds gérés. Vous recevez une erreur similaire à celle de l’exemple suivant :

« AutoScalingGroupNotFound - The Amazon AutoScalingGroup ASG Name was not found. » (Groupe AutoScaling introuvable - Le nom ASG du groupe Amazon AutoScaling est introuvable.)

Pour résoudre ce problème, assurez-vous de ne pas avoir supprimé le groupe Auto Scaling EC2 associé au groupe de nœuds gérés. Si vous avez supprimé accidentellement le groupe Auto Scaling EC2, créez un groupe Auto Scaling EC2 du même nom. Attendez quelques minutes, puis vérifiez si le groupe de nœuds est de nouveau à l'état Actif.

ClusterUnreachable

L'erreur ClusterUnreachable se produit lorsqu'Amazon EKS ou vos nœuds gérés ne peuvent pas communiquer avec le serveur API de votre cluster Kubernetes. Vous recevez une erreur similaire à celle de l’exemple suivant :

« Ec2SecurityGroupNotFound You must use a valid fully-formed launch template. The security group 'sg-09fxx' does not exist in VPC 'vpc-0a8cxx' » (Groupe de sécurité Ec2 introuvable Vous devez utiliser un modèle de lancement entièrement formé valide. Le groupe de sécurité 'sg-09fxx' n’existe pas dans le VPC 'vpc-0a8cxx')

Cette erreur se produit généralement en raison de perturbations du réseau ou d'un délai d'attente des serveurs API lorsqu'ils soumettent des requêtes. Cette erreur se produit également si vous dépassez le quota de 8 Go pour la taille de votre base de données etcd. Pour résoudre ce problème, consultez la section Gestion de la taille de la base de données etcd sur les clusters Amazon EKS. Assurez-vous également que les modules complémentaires principaux, tels que kube-proxy, CNI Amazon Virtual Private Cloud (Amazon VPC) et CoreDNS, sont à jour avec la dernière version.

AutoScalingGroupInvalidConfiguration

L'erreur AutoScalingGroupInvalidConfiguration se produit lorsque vous configurez de manière incorrecte le groupe Auto Scaling EC2 du groupe de nœuds gérés. Vous recevez une erreur similaire à celle de l’exemple suivant :

« AutoScalingGroupInvalidConfiguration: The Amazon AutoScalingGroup ASG Name has subnets ([Incorrect Subnet ID 1, Incorrect Subnet ID 2, Incorrect Subnet ID 3]) which is not expected by Amazon EKS. Expected subnets : ([Correct Subnet ID 1, Correct Subnet ID 2, Correct Subnet ID 3]). » (Configuration du groupe AutoScaling non valide : Le nom ASG du groupe Amazon AutoScaling comporte des sous-réseaux ([ID de sous-réseau 1 incorrect, ID de sous-réseau 2 incorrect, ID de sous-réseau 3 incorrect]), ce qui n’est pas prévu par Amazon EKS. Sous-réseaux attendus : ([ID de sous-réseau 1 correct, ID de sous-réseau 2 correct, ID de sous-réseau 3 correct]).)

Pour résoudre ce problème, identifiez et supprimez les modifications apportées au groupe Auto Scaling EC2. Assurez-vous que les sous-réseaux associés n'ont pas changé. Mettez à jour l'Auto Scaling EC2 associé à votre groupe de nœuds pour utiliser les sous-réseaux répertoriés dans le message d'erreur.

Il n'est pas recommandé de mettre à jour manuellement le groupe Auto Scaling EC2 que vous avez associé au groupe de nœuds gérés. Effectuez une modification manuelle uniquement pour annuler les modifications manuelles que vous avez apportées précédemment.

Ec2SecurityGroupNotFound

L'erreur Ec2SecurityGroupNotFound se produit lorsqu'Amazon EKS ne trouve pas le groupe de sécurité du cluster. Vous recevez une erreur similaire à celle de l’exemple suivant :

« Ec2SecurityGroupNotFound The Amazon EC2 Security Group sg-04f3xx for node group-Name was not found. » (Ec2SecurityGroupNotFound Le groupe de sécurité Amazon EC2 sg-04f3xx pour le nœud group-Name est introuvable.)

Si vous recevez ce message d'erreur, vous ne pouvez plus utiliser le groupe de nœuds gérés à l’état Dégradé. À la place, vous devez lancer un nouveau groupe de nœuds. Puis, drainez et supprimez le groupe de nœuds précédent. Pour plus d'informations sur la procédure de drainage d’un groupe de nœuds, consultez la page Drainer un nœud en toute sécurité sur le site Web de Kubernetes.

Ec2LaunchTemplateNotFound

L'erreur Ec2LaunchTemplateNotFound se produit lorsque le modèle de lancement Amazon Elastic Compute Cloud (Amazon EC2) pour votre groupe de nœuds gérés ne correspond pas à la version créée par Amazon EKS. Vous recevez une erreur similaire à celle de l’exemple suivant :

« The Amazon EC2 Launch Template lt-0cdac3xxf version number was not found. » (Le numéro de version lt-0cdac3xxf du modèle de lancement Amazon EC2 est introuvable.)

Amazon EKS déploie des groupes gérés avec un modèle de lancement géré associé au groupe Auto Scaling EC2 géré sous-jacent.

Si vous avez supprimé accidentellement le modèle de lancement, il est recommandé de lancer un nouveau groupe de nœuds. Puis, vidangez et supprimez le groupe de nœuds précédent. Pour plus d'informations sur la procédure de drainage d’un groupe de nœuds, consultez la page Drainer un nœud en toute sécurité sur le site Web de Kubernetes.

Il n'est pas recommandé de mettre à jour manuellement le groupe Auto Scaling EC2 que vous avez associé au groupe de nœuds gérés. Effectuez une modification manuelle uniquement pour annuler les modifications manuelles que vous avez apportées précédemment

Ec2LaunchTemplateVersionMismatch

L'erreur Ec2LaunchTemplateVersionMismatch se produit lorsque la version du modèle de lancement du groupe EC2 Auto Scaling du groupe de nœuds gérés ne correspond pas à la version créée par Amazon EKS. Vous recevez une erreur similaire à celle de l’exemple suivant :

« The Amazon EC2 Launch Template : lt-0cdacxx has a new version (number) associated with your Autoscaling group, which is not managed by Amazon EKS. Expected Launch Template version : (number) lt-0cdac39f3axx » (Le modèle de lancement Amazon EC2 : lt-0cdacxx utilise une nouvelle version (numéro) associée à votre groupe Auto Scaling qui n’est pas gérée par Amazon EKS. Version attendue du modèle de lancement : (numéro) lt-0cdac39f3axx)

Amazon EKS déploie toujours des groupes de nœuds gérés avec un modèle de lancement géré. Si vous ne fournissez pas de modèle de lancement, Amazon EKS en crée automatiquement un avec les valeurs par défaut de votre compte. Il n'est pas recommandé de modifier le modèle généré automatiquement. Vous ne pouvez pas non plus mettre à jour directement des groupes de nœuds existants qui n'utilisent pas de modèle de lancement personnalisé. À la place, vous devez créer un nouveau groupe de nœuds avec un modèle de lancement personnalisé.

Pour résoudre l'erreur Ec2LaunchTemplateVersionMismatch pour un modèle de lancement personnalisé, mettez à jour la version du modèle de lancement vers la version du modèle de lancement attendue indiquée dans le message d'erreur.

Pour plus d'informations sur les actions autorisées dans un modèle de lancement pour les groupes de nœuds Amazon EKS, consultez la section Principes de base de la configuration du modèle de lancement.

AsgInstanceLaunchFailures

L'erreur AsgInstanceLaunchFailures se produit lorsque votre groupe EC2 Auto Scaling ne peut pas lancer d'instances. Vous recevez une erreur similaire à celle de l’exemple suivant :

« AsgInstanceLaunchFailures Could not launch Spot Instances. UnfulfillableCapacity - Unable to fulfill capacity due to your request configuration. Please adjust your request and try again. Launching EC2 instance failed. » (AsgInstanceLaunchFailures n'a pas pu lancer les instances Spot. UnfillableCapacity - Impossible de répondre à la capacité en raison de la configuration de votre demande. Veuillez modifier votre demande et réessayer. Le lancement de l'instance EC2 a échoué.)

Cette erreur se produit généralement lorsque la capacité d'instance Spot n'est pas suffisante pour le type d'instance que vous avez demandé. Il est recommandé d'utiliser une combinaison de types et de familles d'instances provenant de différents pools d'instances Spot pour obtenir des capacités. Pour plus d'informations, consultez la section Comment lancer et résoudre les problèmes liés aux instances Spot à l'aide de groupes de nœuds gérés par Amazon EKS ?

InsufficientFreeAddresses

L'erreur InsufficientFreeAddresses se produit lorsqu'un sous-réseau associé à votre groupe de nœuds gérés ne dispose pas d'un nombre suffisant d'adresses IP disponibles pour les nouveaux nœuds. Vous recevez une erreur similaire à celle de l’exemple suivant :

« InsufficientFreeAddresses - Amazon AutoScaling was unable to launch instances because there are not enough free addresses in the subnet associated with your AutoScaling group(s). » (Adresses disponibles insuffisantes - Amazon AutoScaling n’a pas pu lancer d’instances car il n’existe pas suffisamment d’adresses disponibles dans le sous-réseau associé à votre ou vos groupes AutoScaling.)

Pour résoudre ce problème, assurez-vous que vous disposez d'un nombre suffisant d'adresses IP dans les sous-réseaux associés au groupe de nœuds gérés. Pour plus d'informations, consultez la section Optimisation de l'utilisation d’adresses IP.

IamInstanceProfileNotFound ou IamNodeRoleNotFound

Les erreurs IamInstanceProfileNotFound ou IamNodeRoleNotFound se produisent lorsque vous supprimez le rôle ou le profil AWS Identity and Access Management (IAM) que vous avez associé au groupe de nœuds gérés. Pour résoudre ce problème, créez un nouveau rôle ou profil IAM avec le même nom et les mêmes paramètres que le rôle ou le profil supprimé.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un mois