Comment puis-je résoudre les problèmes liés aux nœuds qui ne peuvent pas rejoindre les clusters Amazon EKS Anywhere ?
Mes nœuds Amazon Elastic Kubernetes Service (Amazon EKS) ne peuvent pas rejoindre mes clusters Amazon EKS Anywhere.
Brève description
Avant de commencer à résoudre des problèmes, vérifiez que votre configuration répond aux exigences suivantes :
- Vous disposez d'une machine administrative pour exécuter des opérations relatives au cycle de vie du cluster.
- Votre machine administrative, votre plan de contrôle et vos composants master se trouvent sur le même réseau de couche 2.
- Votre réseau prend en charge le protocole DHCP.
Remarque : Il est recommandé de configurer votre réseau de manière à exclure des adresses IP spécifiques pour le plan de contrôle et les composants master. - Vous avez réservé des adresses IP statiques pour le point de terminaison du plan de contrôle et les autres nœuds du cluster et vous avez exclu les adresses IP statiques de la plage DHCP.
- Votre serveur dispose d'au moins deux processeurs virtuels, de 8 Go de RAM et de 25 Go de stockage pour chaque nœud.
- Votre interface réseau Elastic prend en charge un environnement PXE (Preboot Execution Environment).
- Vous disposez de VMware vSphere 7 ou 8 et de VMware vCenter Server.
- Vous avez la capacité de déployer 6 à 10 machines virtuelles (VM). En outre, vous exécutez un service DHCP sur le réseau de machines virtuelles principal de votre cluster de charge de travail.
- Votre réseau vSphere autorise l'accès à vCenter Server, et vous avez réservé et exclu les adresses IP nécessaires du DHCP.
Résolution
Erreur d'enregistrement du nœud
Le message d'erreur suivant s'affiche lorsque vous n'appliquez pas la carte de configuration AWS IAM Authenticator pour Kubernetes (aws-auth ConfigMap) à un cluster :
« Unable to register node with API server err=Unauthorized. »
Remarque : La carte de configuration fournit les autorisations de contrôle d'accès basé sur les rôles (RBAC) system:bootstrappers et system:nodes permettant aux nœuds de s'enregistrer dans le cluster.
Pour résoudre une erreur d'enregistrement de nœud, ajoutez votre rôle Gestion des identités et des accès AWS (AWS IAM) à aws-auth ConfigMap.
Erreur « Unauthorized »
Vous recevez un message d'erreur « unauthorized » lorsque vous supprimez un groupe de nœuds géré et que l'entrée du rôle de nœud est ultérieurement supprimée de aws-auth ConfigMap. Vous pouvez identifier cette erreur lorsque vous consultez les demandes d'API Kubelet adressées au serveur d'API dans vos journaux Kubelet.
Pour résoudre une erreur non autorisée, ajoutez à nouveau votre rôle IAM à aws-auth ConfigMap.
Erreurs de dépendance à Kubelet
Erreur de fichier CA
Le message d'erreur suivant s'affiche lorsqu'un nœud ne peut pas récupérer le fichier d'autorité de certification (CA) d'un cluster ou que le script /etc/eks/bootstrap.sh s'exécute :
« Failed to construct kubelet dependencies" err="unable to load client CA file /etc/kubernetes/pki/ca.crt: open /etc/kubernetes/pki/ca.crt: no such file or directory. »
Pour résoudre une erreur de dépendance à Kubelet, procédez comme suit :
-
Recherchez le flux /var/log/cloud-init-output.log dans vos journaux cloud-init pour identifier le message d’erreur suivant :
« Connect timeout on endpoint URL: https://eks.us-east-1.amazonaws.com/clusters/vg-xx-uat Exited with error on line 291 » -
Exécutez la commande curl -vk suivante pour vérifier que vous pouvez atteindre le point de terminaison d'API Amazon EKS :
curl -vk https://eks.us-east-1.amazonaws.com/ -
Supprimez le point de terminaison Amazon EKS.
Si vous ne parvenez pas à atteindre le point de terminaison, procédez comme suit :
- Pour les points de terminaison privés, placez le nœud dans le même cloud privé virtuel (VPC) ou réseau connecté. Les points de terminaison privés ne sont pas accessibles au public.
- Configurez vos groupes de sécurité, vos tables de routage et votre liste de contrôle d'accès au réseau (ACL réseau) pour les points de terminaison publics. Les groupes de sécurité, les tables de routage et les ACL réseau doivent tous autoriser le trafic HTTPS (TCP 443) sortant vers le point de terminaison Amazon EKS. Pour plus d'informations, consultez la section Considérations relatives aux VPC et aux sous-réseaux.
- Pour les nœuds des sous-réseaux privés, assurez-vous que vous disposez d'une passerelle NAT ou d'un point de terminaison de VPC pour l'accès Internet sortant.
- Définissez enableDnsHostnames et enableDnsSupport sur vrai dans votre VPC.
- Assurez-vous que le jeu d'options DHCP inclut AmazonProvidedDNS.
Erreurs de validation
Le message d'erreur de validation suivant s'affiche lorsque Kubernetes ne trouve pas la ressource de plan de contrôle « kubeadmcontrolplanes.controlplane.cluster.x-k8s.io » dans le cluster de charge de travail :
« Validation failed: kubeadmcontrolplanes.controlplane.cluster.x-k8s.io 'eksa-sit' not found; no CAPI cluster objects present on workload cluster 'eksa-sit'... »
Pour résoudre une erreur de validation, procédez comme suit :
-
Accédez au nœud du plan de contrôle sur lequel le processus kubeadm est exécuté.
-
Exécutez la commande journalctl suivante pour obtenir des informations de dépannage à partir des journaux de service kubelet :
journalctl -u kubelet -f -
Dans la sortie du journal, identifiez le composant de cluster à l'origine de l'erreur de validation.
Erreur de jeton d’amorçage (bootstrap)
Vous rencontrez une erreur de jeton d’amorçage en raison d'un bogue dans la version 1.0.2 des clusters Amazon EKS Anywhere. Pour plus d'informations, consultez la page Les jetons d’amorçage peuvent expirer avant de pouvoir être utilisés si l’écart de temps entre le cluster bootstrap et le cluster de charge de travail est suffisamment important sur le site Web de GitHub.
Pour résoudre cette erreur, consultez la section Corriger pour activer la rotation du secret d'amorçage si le secret proprement dit est manquant sur le site Web de GitHub.
Erreur de secret de jeton d'amorçage manquant
Un message d'erreur peut s'afficher lorsque vous exécutez la commande eksctl anywhere upgrade cluster -f cluster.yaml. L'erreur se produit car un secret de jeton d'amorçage est manquant en raison d'un bogue dans le flux de travail. Le bogue bloque les nouveaux nœuds qui tentent de rejoindre votre cluster.
Pour résoudre cette erreur, procédez comme suit :
- Supprimez manuellement votre nouvelle machine provisionnée pour actualiser le jeton d'amorçage.
- Lorsque le cluster est dans un état sain, sauvegardez l'API Cluster (CAPI) Kubernetes et migrez les composants CAPI vers le cluster de gestion. Pour obtenir des instructions, consultez la section Échec de la mise à niveau du cluster avec des composants de gestion sur le cluster bootstrap.
Erreurs internes
Le message d'erreur interne suivant s'affiche lorsque le service de validation du webhook rencontre des problèmes de connectivité :
« Error from server (InternalError): Internal error occurred: failed calling webhook... »
Pour résoudre une erreur interne, procédez comme suit :
-
Exécutez la commande kubectl get pods suivante pour trouver votre pod eks-controller-manager :
kubectl get pods -n kube-system | grep eks-controller-manager -
Exécutez la commande kubectl logs suivante pour consulter les journaux du pod :
kubectl logs eksa-controller-manager-pod-name -n kube-systemRemarque : Remplacez eksa-controller-manager-pod-name par le nom de votre pod eksa-controller-manager.
-
Utilisez les informations de la sortie du journal pour résoudre le problème.
Le message d'erreur interne suivant s'affiche lorsque le processus d'élection du leader dans le plan de contrôle de Kubernetes expire :
« Failed to update lock: etcdserver: request timed out failed to renew lease eksa-system/f64ae69e.eks.amazonaws.com: timed out waiting for the condition Error setup problem running manager {'error': 'leader election lost'}... »
Ce message d'erreur peut également s’afficher lorsque le processus d'élection du leader ne parvient pas à renouveler sa location en cas de blocage de ressources dans etcd.
Les causes racines de l'erreur incluent les retards de réseau, l'indisponibilité d’etcd ou des problèmes de contention des ressources.
Pour résoudre cette erreur interne, supprimez le pod eksa-controller-manager. Un pod de remplacement démarre et passe à l'état En cours d’exécution.
Remarque : Des erreurs internes peuvent survenir dans les versions 1.21 ou antérieures des clusters Amazon EKS Anywhere. Pour éviter cette erreur, il est recommandé de mettre à jour votre cluster avec la dernière version de Kubernetes.
Erreur du PLEG
Le message d'erreur suivant s'affiche lorsque le générateur d'événements de cycle de vie des pods (PLEG) rencontre un problème :
« PLEG is not healthy: pleg was last seen active. »
Pour résoudre une erreur du PLEG, procédez comme suit :
- Vérifiez et corrigez la latence d’exécution ou les délais d'expiration du conteneur, tels que la dégradation des performances, les blocages ou les bogues, qui surviennent lors de requêtes distantes.
- Évitez un trop grand nombre de pods d’exécution pour les ressources hôtes ou un trop grand nombre de pods d’exécution sur des hôtes dotés de spécifications élevées.
- Résolvez les problèmes de ressources dans le nœud.
Pour plus d'informations sur le PLEG, consultez la page Générateur d’événements de cycle de vie des pods : Comprendre le problème « Le PLEG n’est pas sain » dans Kubernetes sur le site Web de Red Hat Developer.
Erreur NotReady,SchedulingDisabled
Un message d'erreur s'affiche lorsque l'un des nœuds du cluster Amazon EKS Anywhere se trouve à l'état NotReady,SchedulingDisabled. Cela est dû au fait que la machine physique sur laquelle s'exécutait la machine virtuelle vSphere n'existe plus. Votre cluster est bloqué dans la phase de mise à l'échelle et vos nouveaux nœuds ne peuvent pas s’initialiser.
Pour résoudre une erreur d'état NotReady,SchedulingDisabled, procédez comme suit :
- Supprimez le finalisateur de la machine.
- Exécutez la commande kubectl delete node suivante pour supprimer le nœud Amazon EKS en attente et laisser un nouveau nœud s’initialiser :
Remarque : Remplacez your_node_name par le nom du nœud que vous souhaitez supprimer.kubectl delete node your_node_name
Informations connexes
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a un an
AWS OFFICIELA mis à jour il y a 3 ans
AWS OFFICIELA mis à jour il y a 3 ans