Por que meu grupo de nós do Amazon EKS está no status Degradado?

8 minuto de leitura
0

O grupo de nós gerenciados no meu cluster Amazon Elastic Kubernetes Service (Amazon EKS) está no status Degradado.

Resolução

Execute as seguintes ações de solução de problemas com base na mensagem de erro que você recebe no NodeGroupHealth.

AccessDenied

O erro AccessDenied ocorre quando o Amazon EKS ou um de seus nós gerenciados não conseguem se autenticar ou autorizar em seu servidor de API de cluster Kubernetes. Você recebe um erro semelhante ao exemplo seguinte:

“Your worker nodes do not have access to the cluster. Verify if the node instance role is present and correctly configured in the aws-auth ConfigMap.”

Para solucionar esse problema, execute o comando a seguir para confirmar se as permissões do perfil da instância do nó estão corretas no aws-auth configmap:

kubectl get configmap aws-auth -n kube-system -o yaml

Ou confirme se você mapeou corretamente o perfil do nó para uma entrada de acesso.

Seu perfil de instância do nó de processamento deve estar presente e configurado corretamente. Certifique-se de mapear o perfil do nó somente para system:bootstrappers ou system:nodes. Não é uma prática recomendada mapear o perfil do nó para o grupo system:masters.

Você também recebe erros de AccessDenied quando o perfil que está executando operações nos grupos de nós gerenciados não tem permissões eks:node-manager ClusterRole ou ClusterRoleBinding. Para solucionar esse problema, atualize suas permissões de perfil.

Se você usar uma imagem de máquina privada da Amazon (AMI) do Windows para iniciar um grupo de nós gerenciados, poderá receber a mensagem de erro Não autorizado para imagens. Quando a AWS lança uma nova AMI do Windows, a AWS torna privadas todas as AMIs anteriores a 4 meses. Para solucionar esse problema, consulte Não autorizado para imagens.

AmiIdNotFound

O erro AMIidNotFound ocorre quando o Amazon EKS não consegue encontrar o ID da AMI associado ao seu modelo de inicialização. Você recebe um erro semelhante ao exemplo seguinte:

“AmiIdNotFound: The ami id ‘[ami-0cxx]’ does not exist”

Para solucionar esse problema, certifique-se de que o ID da AMI que você adicionou ao seu modelo de inicialização personalizado exista. Além disso, certifique-se de compartilhá-lo com sua conta da AWS.

Grupo de escalonamento automático não encontrado

O erro AutoScalingGroupNotFound ocorre quando o Amazon EKS não consegue encontrar o grupo do Auto Scaling do Amazon Elastic Compute Cloud (EC2) associado ao grupo de nós gerenciados. Você recebe um erro semelhante ao exemplo seguinte:

“AutoScalingGroupNotFound - The Amazon AutoScalingGroup ASG Name was not found.”

Para solucionar esse problema, certifique-se de não excluir o grupo do EC2 Auto Scaling associado ao grupo de nós gerenciados. Se você excluiu acidentalmente o grupo do EC2 Auto Scaling, crie um grupo do EC2 Auto Scaling com o mesmo nome. Aguarde alguns minutos e verifique se o grupo de nós está de volta ao status Ativo.

Cluster inacessível

O erro ClusterUnreachable ocorre quando o Amazon EKS ou seus nós gerenciados não conseguem se comunicar com seu servidor de API de cluster Kubernetes. Você recebe um erro semelhante ao exemplo seguinte:

“Ec2SecurityGroupNotFound You must use a valid fully-formed launch template. The security group ‘sg-09fxx’ does not exist in VPC ‘vpc-0a8cxx’”

Esse erro geralmente ocorre devido a interrupções de rede ou servidores de API que atingem o tempo limite quando eles enviam solicitações. Esse erro também ocorre se você exceder a cota de 8 GB para o tamanho do banco de dados etcd. Para solucionar esse problema, consulte Gerenciamento do tamanho do banco de dados etcd em clusters do Amazon EKS. Além disso, certifique-se de que os complementos principais, como kube-proxy, Amazon Virtual Private Cloud (Amazon VPC) CNI e CoreDNS, estejam atualizados com a versão mais recente.

AutoScalingGroupInvalidConfiguration

O erro AutoScalingGroupInvalidConfiguration ocorre quando você configura incorretamente o grupo do EC2 Auto Scaling do grupo de nós gerenciados. Você recebe um erro semelhante ao exemplo seguinte:

“AutoScalingGroupInvalidConfiguration: The Amazon AutoScalingGroup ASG Name has subnets ([Incorrect Subnet ID 1, Incorrect Subnet ID 2, Incorrect Subnet ID 3]) which is not expected by Amazon EKS. Expected subnets : ([Correct Subnet ID 1, Correct Subnet ID 2, Correct Subnet ID 3]).”

Para solucionar esse problema, identifique e remova as alterações no grupo do EC2 Auto Scaling. Certifique-se de que as sub-redes associadas não tenham sido alteradas. Atualize o EC2 Auto Scaling associado ao seu grupo de nós para usar as sub-redes listadas na mensagem de erro.

Não é uma prática recomendada atualizar manualmente o grupo do EC2 Auto Scaling que você associou ao grupo de nós gerenciados. Faça apenas uma alteração manual para reverter as alterações manuais que você fez anteriormente.

Grupo de segurança do EC2 não encontrado

O erro EC2SecurityGroupNotFound ocorre quando o Amazon EKS não consegue encontrar o grupo de segurança do cluster. Você recebe um erro semelhante ao exemplo seguinte:

“Ec2SecurityGroupNotFound The Amazon EC2 Security Group sg-04f3xx for node group-Name was not found.”

Se você receber essa mensagem de erro, não poderá mais usar o grupo de nós gerenciados no status Degradado. Em vez disso, você deve iniciar um novo grupo de nós. Em seguida, drene e exclua o grupo de nós anterior. Para obter mais informações sobre como drenar um grupo de nós, consulte Drenar um nó com segurança no site do Kubernetes.

Ec2LaunchTemplateNotFound

O erro EC2LaunchTemplateNotFound ocorre quando o modelo de inicialização do Amazon Elastic Compute Cloud (Amazon EC2) para seu grupo de nós gerenciados não corresponde à versão que o Amazon EKS criou. Você recebe um erro semelhante ao exemplo seguinte:

“The Amazon EC2 Launch Template lt-0cdac3xxf version number was not found.”

O Amazon EKS implanta grupos gerenciados com um modelo de inicialização gerenciado associado ao grupo gerenciado subjacente do EC2 Auto Scaling.

Se você excluiu acidentalmente o modelo de inicialização, é uma prática recomendada iniciar um novo grupo de nós. Em seguida, drene e exclua o grupo de nós anterior. Para obter mais informações sobre como drenar um grupo de nós, consulte Drenar um nó com segurança no site do Kubernetes.

Não é uma prática recomendada atualizar manualmente o grupo do EC2 Auto Scaling que você associou ao grupo de nós gerenciados. Faça apenas uma alteração manual para reverter as alterações manuais que você fez anteriormente

Ec2LaunchTemplateVersionMismatch

O erro EC2LaunchTemplateVersionMismatch ocorre quando a versão do modelo de inicialização do grupo do EC2 Auto Scaling do grupo de nós gerenciados não corresponde à versão que o Amazon EKS criou. Você recebe um erro semelhante ao exemplo seguinte:

“The Amazon EC2 Launch Template : lt-0cdacxx has a new version (number) associated with your Autoscaling group, which is not managed by Amazon EKS. Expected Launch Template version : (number) lt-0cdac39f3axx”

O Amazon EKS sempre implanta grupos de nós gerenciados com um modelo de inicialização gerenciado. Se você não fornecer um modelo de inicialização, o Amazon EKS criará automaticamente um com os valores padrão da sua conta. Não é uma prática recomendada modificar o modelo gerado automaticamente. Você também não pode atualizar diretamente grupos de nós existentes que não utilizam um modelo de inicialização personalizado. Em vez disso, você deve criar um novo grupo de nós com um modelo de inicialização personalizado.

Para resolver o erro EC2LaunchTemplateVersionMismatch para um modelo de inicialização personalizado, atualize a versão do modelo de inicialização para a versão esperada do modelo de inicialização indicada na mensagem de erro.

Para obter informações sobre as ações permitidas em um modelo de inicialização para grupos de nós do Amazon EKS, consulte Fundamentos da configuração do modelo de inicialização.

AsgInstanceLaunchFailures

O erro AsgInstanceLaunchFailures ocorre quando seu grupo do EC2 Auto Scaling não consegue iniciar instâncias. Você recebe um erro semelhante ao exemplo seguinte:

“AsgInstanceLaunchFailures Could not launch Spot Instances. UnfulfillableCapacity - Unable to fulfill capacity due to your request configuration. Please adjust your request and try again. Launching EC2 instance failed.”

Esse erro normalmente ocorre quando não há capacidade de instância spot suficiente para o tipo de instância solicitado. É uma prática recomendada usar uma combinação de tipos e famílias de instâncias de diferentes grupos de instâncias spot para obter capacidade. Para obter mais informações, consulte Como faço para iniciar e solucionar problemas de instâncias spot usando grupos de nós gerenciados do Amazon EKS?

InsufficientFreeAddresses

O erro InsufficientFreeAddresses ocorre quando uma sub-rede associada ao seu grupo de nós gerenciados não tem endereços IP disponíveis suficientes para novos nós. Você recebe um erro semelhante ao exemplo seguinte:

“InsufficientFreeAddresses - Amazon AutoScaling was unable to launch instances because there are not enough free addresses in the subnet associated with your AutoScaling group(s).”

Para resolver esse problema, verifique se você tem endereços IP suficientes nas sub-redes associadas ao grupo de nós gerenciados. Para obter mais informações, consulte Otimizando a utilização do endereço IP.

IamInstanceProfileNotFound ou IamNodeRoleNotFound

Os erros IamInstanceProfileNotFound ou IamNodeRoleNotFound ocorrem quando você exclui a função ou o perfil do AWS Identity and Access Management (AWS IAM) que você associou ao grupo de nós gerenciados. Para resolver esse problema, crie uma nova função ou perfil do IAM com o mesmo nome e configurações da função ou perfil excluído.

AWS OFICIAL
AWS OFICIALAtualizada há um mês