Como resolvo erros de grupos de nós gerenciados em um cluster do Amazon EKS?

Última atualização em: 2021-11-15

Estou com problemas com meu grupo de nós gerenciados no meu cluster do Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrição

Você recebe um erro ao registrar um nó no servidor de APIs.

Se você usar uma opção de DHCP incorreta no DNS personalizado, receberá o seguinte erro:

Node "ip-x-x-x-x.eu-region.compute.internal" is invalid: metadata.labels: Invalid value

Para resolver o problema, conclua as etapas na seção Verificar suas opções de DHCP na Resolução.

Você recebe um erro ao executar uma instância do Amazon Elastic Compute Cloud (Amazon EC2) em um grupo do Auto Scaling com um volume do Amazon Elastic Block Store (Amazon EBS) criptografado com uma chave do KMS.

Exemplo do erro:

AccessDeniedException: User: arn:aws:sts::xxxxxxxxxxxx:assumed-role/AWSServiceRoleForAutoScaling/AutoScaling is not authorized to perform: kms:GenerateDataKeyWithoutPlaintext on resource: ARN of KMS key

Se um nó gerenciado usa um volume do Amazon EBS criptografado com uma chave do KMS, a função de serviço de grupo do Auto Scaling não tem acesso a ele. Para configurar uma política de chaves, consulte a seção Configurar uma política de chaves para a criptografia de volume do EBS na Resolução.

Seu grupo de nós gerenciados está no status Degradado porque a versão do template de execução do EC2 não corresponde à versão criada pelo Amazon EKS.

Se você atualizar manualmente o template de execução diretamente do grupo do Auto Scaling, receberá o seguinte erro:

Ec2LaunchTemplateVersionMismatch

Para resolver o problema, conclua as etapas na seção Atualizar a versão do template de execução na Resolução.

Para obter outras resoluções de nós com falha em grupos de nós gerenciados, consulte Como fazer com que meus nós de trabalho ingressem no cluster do Amazon EKS?

Resolução

Verificar suas opções de DHCP

Verifique se o nome do host não contém mais de 63 caracteres. Para revisar as opções de DHCP, consulte Trabalhar com conjuntos de opções de DHCP.

Especifique o nome do host para corresponder à região da AWS. Para um servidor DNS fornecido pela Amazon em us-east-1, especifique ec2.internal. Para um servidor AmazonProvidedDNS em outras regiões da AWS, especifique region.compute.internal.

Exemplo de uma opção de DHCP definida em us-east-1:

domain-name: ec2.internal
domain-name-servers: AmazonProvidedDNS

Exemplo de uma opção de DHCP definida em outras regiões:

domain-name: region name.compute.internal
domain-name-servers: AmazonProvidedDNS

Exemplo de uma opção de DHCP definida a partir de um DNS personalizado:

domain-name:custom DNS name
domain-name-servers: domain name server

Observação: substitua region name pela sua região, custom DNS name pelo seu nome DNS e domain name server pelo seu servidor de nomes de domínio.

Para obter mais informações, consulte a seção domain-name da Visão geral dos conjuntos de opções DHCP.

Observação: se o conjunto de opções de DHCP está associado a uma VPC que tem instâncias com vários sistemas operacionais, uma prática recomendada é especificar apenas um nome de domínio.

Configurar uma política de chaves para a criptografia de volumes do EBS

A função de serviço do grupo do Auto Scaling deve ter as seguintes permissões para trabalhar com volumes criptografados do EBS:

  • kms:Encrypt
  • kms:Decrypt
  • kms:ReEncrypt*
  • kms:GenerateDataKey*
  • kms:DescribeKey
  • kms:CreateGrant

Para configurar a política correta de chaves do KMS, consulte Política de chaves obrigatória do AWS KMS para uso com volumes criptografados.

Para permitir que mais funções do IAM funcionem com volumes criptografados do EBS, você pode modificar as políticas de chaves. Para obter mais informações, consulte Permitir que os usuários de chaves usem a chave do KMS.

Para obter mais informações sobre o gerenciamento de acesso a chaves do KMS, consulte Gerenciar o acesso a chaves do KMS.

Atualizar a versão do template de execução

Observação: antes de atualizar o template de execução do EC2 a partir do grupo de nós gerenciados, crie uma nova versão. Para obter mais informações, consulte Criar um novo template de execução usando parâmetros que você define.

Para atualizar o template de execução do EC2 a partir do grupo de nós gerenciados, conclua as seguintes etapas:

  1. Abra o console do EKS.
  2. Selecione o cluster que contém o grupo de nós a ser atualizado.
  3. Escolha a guia Configuration (Configuração) e, em seguida, escolha a guia Compute (Calcular).
  4. Na página de grupos de nós, em templates de execução, escolha Change version (Alterar versão).
  5. Selecione a versão a ser aplicada ao seu grupo de nós. Certifique-se de que a estratégia de atualização esteja definida como Rolling Update (Atualização contínua).
  6. Escolha Update (Atualizar).

Observação: uma prática recomendada é atualizar o grupo de nós com a nova versão do template de execução do EC2.

Se você não usou um template de execução personalizado e obteve o erro Ec2LaunchTemplateVersionMismatch, seus nós de trabalho não estão usando a mesma versão do grupo de nós do EKS. Para resolver esse problema, acesse o console do Auto Scaling para reverter para a versão criada pelo EKS. Para obter mais informações, consulte Erros de grupos de nós gerenciados.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?