Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

'eksctl' travado aguardando nodes entrarem no cluster

By Vladik KhononovOct 23, 20192 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

1 6azquqzs s3yzqi gx4tvw

Muitos dos nossos clientes que tentaram criar um cluster Kubernetes se depararam com essa mensagem de erro sem logs específicos que ajudassem a entender o que deu errado. Veja como costumamos resolver.

É comum que, ao usar `eksctl` para criar clusters Kubernetes no AWS EKS, o processo fique travado aguardando os nodes entrarem no cluster e apareça o seguinte erro:

> 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"

A mensagem aparece sem nenhum log adicional e, no fim, o processo dá timeout, enquanto os nodes recém-criados não conseguem se comunicar com o cluster Kubernetes. Pela nossa experiência na DoiT International, esse problema tem duas causas principais: VPC mal configurada ou policies ausentes.

VPC mal configurada

Ao usar uma rede VPC existente, é preciso garantir que ela atenda a todos os requisitos específicos do EKS [1, 2]. Este post do blog da logz.io traz um passo a passo detalhado sobre como configurar uma rede VPC, além de um exemplo de template do AWS Cloud Formation que você pode usar como base [3].

IAM policies ausentes

Outra causa recorrente está nas policies AmazonEKSWorkerNodePolicy e AmazonEKS_CNI_Policy [4], necessárias para que os worker nodes do EKS consigam se comunicar com o cluster. Por padrão, o eksctl gera automaticamente uma role contendo essas policies. Mas, quando você usa a propriedade "attachPolicyARNs" para anexar policies específicas por ARN, precisa incluí-las explicitamente [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

Ainda está esbarrando nesses erros? Conte sua situação nos comentários.

[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/