Comment résoudre les erreurs de groupe de nœuds gérés dans un cluster Amazon EKS ?

Dernière mise à jour : 15/11/2021

J'ai des problèmes avec mon groupe de nœuds gérés dans mon cluster Amazon Elastic Kubernetes Service (Amazon EKS).

Brève description

Vous recevez une erreur lorsque vous enregistrez un nœud avec le serveur d'API.

Si vous utilisez une option DHCP incorrecte dans votre DNS personnalisé, vous recevez l'erreur suivante :

Node "ip-x-x-x-x.eu-region.compute.internal" is invalid: metadata.labels: Invalid value

Pour résoudre le problème, effectuez les étapes de la section Vérifier vos options DHCP de la section Solution.

Vous recevez une erreur lorsque vous lancez une instance Amazon Elastic Compute Cloud (Amazon EC2) dans un groupe Auto Scaling avec un volume Amazon Elastic Block Store (Amazon EBS) chiffré avec une clé KMS.

Exemple d'erreur :

AccessDeniedException: User: arn:aws:sts::xxxxxxxxxxxx:assumed-role/AWSServiceRoleForAutoScaling/AutoScaling is not authorized to perform: kms:GenerateDataKeyWithoutPlaintext on resource: ARN of KMS key

Si un nœud géré utilise un volume Amazon EBS chiffré avec une clé KMS, la fonction du service du groupe Auto Scaling n'y a pas accès. Pour configurer une politique de clé, consultez Configuration d'une politique de clé pour le chiffrement de votre volume EBS de la section Solution.

Votre groupe de nœuds gérés est dans l'état Degraded (Dégradé) car la version du modèle de lancement EC2 ne correspond pas à la version créée par Amazon EKS.

Si vous mettez à jour manuellement le modèle de lancement directement à partir du groupe Auto Scaling, vous recevez l'erreur suivante :

Ec2LaunchTemplateVersionMismatch

Pour résoudre le problème, effectuez les étapes de la section Mise à jour de la version du modèle de lancement de la section Solution.

Pour d'autres solutions aux nœuds défaillants dans les groupes de nœuds gérés, consultez la section Comment faire pour que mes composants master rejoignent mon cluster Amazon EKS ?

Solution

Vérifiez vos options DHCP

Vérifiez que votre nom d'hôte ne contient pas plus de 63 caractères. Pour vérifier vos options DHCP, consultez Travailler avec les jeux d'options DHCP.

Spécifiez votre nom d'hôte pour qu'il corresponde à la région AWS. Pour un serveur AmazonProvidedDNS dans us-east-1, spécifiez ec2.internal. Pour un serveur AmazonProvidedDNS dans d'autres régions AWS, spécifiez region.compute.internal.

Exemple d'un jeu d'options DHCP dans us-east-1 :

domain-name: ec2.internal
domain-name-servers: AmazonProvidedDNS

Exemple d'un jeu d'options DHCP dans d'autres régions :

domain-name: region name.compute.internal
domain-name-servers: AmazonProvidedDNS

Exemple d'un jeu d'options DHCP à partir d'un DNS personnalisé :

domain-name:custom DNS name
domain-name-servers: domain name server

Remarque : remplacez le nom de la région par votre région, le nom du DNS personnalisé par votre nom de DNS et le serveur de nom de domaine par votre serveur de nom de domaine.

Pour plus d'informations, consultez la section domain-name de la rubrique Présentation des jeux d'options DHCP.

Remarque : si votre jeu d'options DHCP est associé à un VPC qui possède des instances avec plusieurs systèmes d'exploitation, une bonne pratique consiste à ne spécifier qu'un seul nom de domaine.

Configuration d'une politique de clé pour le chiffrement de votre volume EBS

La fonction du service du groupe Auto Scaling doit disposer des autorisations suivantes pour travailler avec des volumes EBS chiffrés :

  • kms:Encrypt
  • kms:Decrypt
  • kms:ReEncrypt*
  • kms:GenerateDataKey*
  • kms:DescribeKey
  • kms:CreateGrant

Pour configurer la politique de clé KMS correcte, consultez Politique de clé AWS KMS requise pour l'utilisation de volumes chiffrés.

Pour permettre à davantage de rôles IAM de travailler avec des volumes EBS chiffrés, vous pouvez modifier les politiques de clé. Pour plus d'informations, consultez Autorise les utilisateurs clés à utiliser la clé KMS.

Pour plus d'informations sur la gestion de l'accès aux clés KMS, consultez Gestion de l'accès aux clés KMS.

Mise à jour de la version du modèle de lancement

Remarque : avant de mettre à jour votre modèle de lancement EC2 à partir du groupe de nœuds gérés, créez une nouvelle version. Pour plus d'informations, consultez Création d'un nouveau modèle de lancement à l'aide des paramètres que vous définissez.

Pour mettre à jour votre modèle de lancement EC2 à partir du groupe de nœuds gérés, effectuez les étapes suivantes :

  1. Ouvrez la console EKS.
  2. Sélectionnez le cluster qui contient le groupe de nœuds à mettre à jour.
  3. Choisissez l'onglet Configuration, puis l'onglet Calcule.
  4. Sur la page des groupes de nœuds, sous les modèles de lancement, choisissez Modifier la version.
  5. Sélectionnez la version à appliquer à votre groupe de nœuds. Assurez-vous que la stratégie de mise à jour est définie sur Mise à jour continue.
  6. Choisissez Mettre à jour.

Remarque : une bonne pratique consiste à mettre à jour le groupe de nœuds avec la nouvelle version du modèle de lancement EC2.

Si vous n'avez pas utilisé de modèle de lancement personnalisé et que vous obtenez l'erreur Ec2LaunchTemplateVersionMismatch, cela signifie que vos composants master n'utilisent pas la même version que le groupe de nœuds EKS. Pour résoudre ce problème, accédez à la console Auto Scaling pour revenir à la version créée par EKS. Pour plus d'informations, consultez Erreurs de groupe de nœuds gérés.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?