Comment joindre mes composants master à mon cluster Amazon EKS ?

Dernière mise à jour : 29/07/2022

Mes composants master ne sont pas joints à mon cluster Amazon Elastic Kubernetes Service (Amazon EKS).

Brève description

Pour joindre vos composants master à votre cluster Amazon EKS, vous devez effectuer les opérations suivantes :

  • Vérifiez que vous bénéficiez du support DNS pour votre Amazon Virtual Private Cloud (Amazon VPC).
  • Obtenir les autorisations appropriées pour les composants master du profil d'instance.
  • Configurer les données utilisateur pour vos composants master.
  • Vérifier que vos composants master se trouvent dans un sous-réseau associé à votre cluster EKS.
  • Mettre à jour le ConfigMap aws-auth avec le rôle NodeInstanceRole associé de vos composants master.
  • Respectez les exigences applicables aux groupes de sécurité de vos composants master.
  • Définir les identifications de vos composants master.
  • Vérifiez que vos composants master peuvent atteindre le point de terminaison du serveur d'API de votre cluster EKS.
  • Pour les régions AWS qui prennent en charge les points de terminaison service de jetons de sécurité AWS (AWS STS), vérifiez que le point de terminaison régional AWS STS est activé.
  • Connectez-vous à votre instance Amazon Elastic Compute Cloud (Amazon EC2) de votre composant master à l'aide de SSH et recherchez des erreurs dans les journaux de l'agent kubelet.

Important : les étapes ci-dessous ne font pas référence aux configurations requises pour enregistrer les composants master dans votre cluster dans des environnements qui ne répondent pas aux critères suivants :

  • Dans le VPC de votre cluster, le paramètre de configuration domain-name-servers est défini sur AmazonProvidedDNS. Pour obtenir des informations supplémentaires, consultez la section Jeux d'options DHCP.
  • Vous utilisez une Amazon Machine Image (AMI) Linux optimisée pour Amazon EKS pour lancer vos composants master.
    Remarque : l’AMI Linux optimisée pour Amazon EKS inclut toutes les configurations nécessaires, et notamment le script d’amorçage /etc/eks/bootstrap.sh permettant d’enregistrer les composants master dans votre cluster.

Solution

Identifiez des problèmes courants à l’aide du runbook d’AWS Systems Manager Automation

Utilisez le runbook AWSSupport-TroubleshootEKSWorkerNode pour trouver les problèmes courants qui empêchent les composants master de rejoindre votre cluster.

Important : pour que l'automatisation fonctionne, vos composants master doivent avoir l'autorisation d'accéder à Systems Manager et avoir Systems Manager en cours d'exécution. Pour accorder l'autorisation, associez la politique gérée par AWS AmazonSSMManagedInstanceCore au rôle AWS Identity and Access Management (IAM) qui correspond à votre profil d'instance EC2. Il s'agit de la configuration par défaut pour les groupes de nœuds gérés par EKS qui sont créés via eksctl.

  1. Ouvrez le runbook.
  2. Vérifiez que la région AWS dans la console de gestion AWS est définie sur la même région que votre cluster.
    Remarque : consultez la section Document details (Détails du document) du runbook pour plus d'informations sur le runbook.
  3. Dans la section Input parameters (Paramètres d'entrée), spécifiez le nom de votre cluster dans le champ ClusterName et l'ID de l'instance EC2 dans le champ WorkerID.
  4. (Facultatif) Dans le champ AutomationAssumeRole, spécifiez le rôle IAM permettant à Systems Manager d'effectuer des actions. S'il n'est pas spécifié, les autorisations IAM de votre entité IAM actuelle sont utilisées pour exécuter les actions du runbook.
  5. Choisissez Exécuter.
  6. Consultez la section Outputs (Sorties) pour savoir pourquoi votre composant master ne rejoint pas votre cluster et les étapes que vous pouvez suivre pour résoudre ce problème.

Vérifier que vous disposez du support DNS pour votre VPC Amazon

Confirmez que le VPC Amazon de votre cluster EKS prend en charge le nom d'hôte DNS et la résolution DNS.

Si nécessaire, affichez et mettez à jour les attributs du support DNS pour votre VPC.

Obtenir les autorisations appropriées pour les composants master de profil d'instance

Associez les stratégies gérées par AWS suivantes au rôle associé aux composants master de votre profil d'instance :

  • AmazonEKSWorkerNodePolicy
  • AmazonEKS_CNI_Policy ;
  • AmazonEC2ContainerRegistryReadOnly

Pour savoir comment associer des stratégies à des rôles, consultez Ajout d'autorisations d'identité IAM (console).

Configurer les données utilisateur de vos composants master

Remarque : si vous utilisez AWS CloudFormation pour lancer vos composants master, vous n'avez pas besoin de configurer les données utilisateur de vos composants master. Suivez plutôt les instructions pour le Lancement de nœuds Amazon Linux autogérés à laide de la Console de gestion AWS.

Si vous lancez vos composants master à l'aide de groupes de nœuds gérés, vous n'êtes pas ensuite obligé de configurer des données utilisateur avec des AMI Amazon Linux optimisées pour Amazon EKS. Vous devez configurer les données utilisateur uniquement si vous utilisez des AMI personnalisées pour lancer vos composants master via des groupes de nœuds gérés.

Afin de configurer les données utilisateur pour vos composants master, spécifiez les lors du lancement de vos instances Amazon EC2.

Par exemple, si vous utilisez un outil tiers tel que Terraform, mettez à jour le champ Données utilisateur pour lancer vos composants master EKS avec les éléments suivants :

#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh ${ClusterName} ${BootstrapArguments}

Important : remplacez ${ClusterName} par le nom de votre cluster EKS. Remplacez ${BootstrapArguments} par des valeurs d'amorçage supplémentaires ou ne renseignez pas cette propriété.

Vérifiez que vos composants master se trouvent dans le même VPC Amazon que votre cluster EKS

  1. Ouvrez la console Amazon EKS.
  2. Sélectionnez Clusters, puis votre cluster.
  3. Dans la section Mise en réseau, identifiez les sous-réseaux associés à votre cluster.

Remarque : vous pouvez configurer différents sous-réseaux pour y lancer vos composants master. Les sous-réseaux doivent exister dans le même VPC Amazon et être identifiés de manière appropriée. Amazon EKS gère automatiquement les identifications uniquement pour les sous-réseaux que vous configurez lors de la création du cluster. Par conséquent, assurez-vous d'étiqueter les sous-réseaux de manière appropriée.

Mettre à jour le ConfigMap aws-auth avec NodeInstanceRole associé à vos composants master

Vérifiez que le ConfigMap aws-auth est configuré correctement, avec le rôle IAM de vos composants master et non le profil d'instance.

Respecter les exigences applicables aux groupes de sécurité de vos composants master

Vérifiez que le groupe de sécurité de votre plan de contrôle et le groupe de sécurité du composant master sont configurés avec les paramètres recommandés pour le trafic entrant et sortant. Vérifiez également que vos règles ACL réseau personnalisées sont configurées pour autoriser le trafic vers et depuis « 0.0.0.0/0 » pour les ports 80 443 et 1025-65535.

Définir les identifications pour vos composants master

Pour la propriété Tag (Identification) de vos composants master, définissez la valeur Key (clé) sur kubernetes.io/cluster/clusterName et la valeur Value (valeur) sur owned (détenu).

Pour plus d'informations, consultez Considérations relatives au VPC du cluster.

Vérifier que vos composants master peuvent atteindre le point de terminaison du serveur d'API de votre cluster EKS

Éléments à prendre en compte :

  • Vous pouvez lancer des composants master dans un sous-réseau associé à une table de routage qui a un acheminement vers le point de terminaison d'API via une NAT ou une passerelle internet.
  • Si vous lancez vos composants master dans un réseau privé restreint, vérifiez que ceux-ci peuvent atteindre le point de terminaison du serveur d'API EKS.
  • Si vous lancez des composants master à l’aide d'un VPC Amazon qui utilise un DNS personnalisé au lieu d'AmazonProvidedDNS, ils risquent de ne pas résoudre le point de terminaison. Un point de terminaison non résolu se produit lorsque l'accès public au point de terminaison est désactivé et que seul l'accès privé est activé. Pour plus d'informations, consultez Activation de la résolution DNS pour les points de terminaison de cluster Amazon EKS.
  • Pour les clusters privés, vous devez inclure les points de terminaison d'un VPC spécifiques aux clusters privés. Assurez-vous que les nœuds autogérés et gérés ont accès aux points de terminaison d’un VPC Amazon. Pour les groupes de nœuds gérés, le groupe de sécurité des points de terminaison d'un VPC Amazon doit autoriser l'adresse CIDR pour les sous-réseaux ou le groupe de sécurité du cluster.

Vérifiez que les points de terminaison STS régionaux sont activés

Si le cluster se trouve dans une région qui prend en charge les points de terminaison STS, activez le point de terminaison STS régional pour authentifier le kubelet. Le kubelet peut ensuite créer l'objet du nœud.

Connectez-vous à votre instance de composant master EKS avec SSH et vérifiez les journaux de l'agent kubelet

L'agent kubelet est configuré en tant que service systemd.

1.FSP pour valider vos journaux kubelet, exécutez la commande suivante :

journalctl -f -u kubelet

2. FSP pour résoudre tout problème, consultez le guide de dépannage Amazon EKS pour les erreurs les plus courantes.


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


Avez-vous besoin d'aide pour une question technique ou de facturation ?