Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

'eksctl' se queda esperando que los nodos se unan al cluster

By Vladik KhononovOct 23, 20192 min read

Esta página también está disponible en English, Deutsch, Français, Italiano, 日本語 y Português.

1 6azquqzs s3yzqi gx4tvw

Muchos de nuestros clientes que intentaron crear un cluster de Kubernetes se toparon con este error sin logs específicos que les permitan entender qué falló. Así es como solemos resolverlo.

Es habitual que, al usar `eksctl` para crear clusters de Kubernetes con AWS EKS, el proceso se quede esperando a que los nodos se unan al cluster y aparezca el siguiente error:

> nodegroup "my-cluster" has 0 node(s) > waiting for at least 3 node(s) to become ready in "my-cluster" > timed out (after 25m0s) waiting for at least 3 nodes to join the cluster and become ready in "my-cluster"

El mensaje aparece sin logs adicionales y, al cabo de un rato, el proceso termina por timeout, mientras los nodos recién creados no logran comunicarse con el cluster de Kubernetes. Por nuestra experiencia en DoiT International, este problema tiene dos causas principales: una VPC mal configurada o políticas faltantes.

VPC mal configurada

Cuando se usa una red VPC existente, hay que asegurarse de que la VPC cumpla con todos los requisitos específicos de EKS [1, 2]. Este artículo de logz.io ofrece una guía detallada para configurar una red VPC, además de una plantilla de ejemplo de AWS Cloud Formation que puedes usar como base [3].

Políticas IAM faltantes

Otra causa frecuente tiene que ver con las políticas AmazonEKSWorkerNodePolicy y AmazonEKS_CNI_Policy [4], necesarias para que los worker nodes de EKS puedan comunicarse con el cluster. Por defecto, eksctl genera automáticamente un rol que incluye estas políticas. Sin embargo, cuando usas la propiedad "attachPolicyARNs" para adjuntar políticas específicas por ARN, tienes que incluir estas políticas de forma explícita [5]:

nodeGroups:
- name: my-special-nodegroup
iam:
attachPolicyARNs:

- arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy

- arn:aws:iam::aws:policy/ElasticLoadBalancingFullAccess

¿Te siguen apareciendo estos errores? Cuéntanos tu caso en los comentarios.

[1] https://docs.aws.amazon.com/eks/latest/userguide/create-public-private-vpc.html

[2] https://eksctl.io/usage/vpc-networking/

[3] https://logz.io/blog/amazon-eks/

[4] https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html

[5] https://eksctl.io/usage/iam-policies/