¿Cómo resuelvo los errores de grupos de nodos administrados en un clúster de Amazon EKS?

Última actualización: 15/11/2021

Tengo problemas con el grupo de nodos administrados en el clúster de Amazon Elastic Kubernetes Service (Amazon EKS).

Descripción breve

Recibe un error al registrar un nodo en el servidor de la API.

Si usa una opción de DHCP incorrecta en el DNS personalizado, recibirá el siguiente error:

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

Para resolver el problema, siga los pasos de la sección Verificar las opciones de DHCP en Resolución.

Recibe un error al lanzar una instancia de Amazon Elastic Compute Cloud (Amazon EC2) en un grupo de Auto Scaling con un volumen de Amazon Elastic Block Store (Amazon EBS) cifrado mediante una clave KMS.

Error de ejemplo:

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

Si un nodo administrado utiliza un volumen de Amazon EBS cifrado con una clave de KMS, el rol de servicio del grupo de Auto Scaling no puede acceder al volumen. Para configurar una política de claves, consulte la sección Configurar una política de claves para el cifrado de volúmenes de EBS en Resolución.

El grupo de nodos administrados tiene el estado Degraded (Degradado) porque la versión de la plantilla de lanzamiento de EC2 no coincide con la versión que creó Amazon EKS.

Si actualiza la plantilla de lanzamiento de forma manual directamente en el grupo de Auto Scaling, recibirá el siguiente error:

Ec2LaunchTemplateVersionMismatch

Para resolver el problema, siga los pasos de la sección Actualizar la versión de la plantilla de lanzamiento en Resolución.

Para resolver nodos con errores en grupos de nodos administrados de otras formas, consulte ¿Cómo puedo lograr que los nodos de trabajo se unan al clúster de Amazon EKS?

Resolución

Verifique las opciones de DHCP

Verifique que el nombre de host no contenga más de 63 caracteres. Para revisar las opciones de DHCP, consulte Trabajar con conjuntos de opciones de DHCP.

Especifique el nombre de host para que coincida con la región de AWS. En el caso de un servidor AmazonProvidedDNS en us-east-1, especifique ec2.internal. En el caso de un servidor AmazonProvidedDNS en otras regiones de AWS, especifique region.compute.internal.

Ejemplo de una opción de DHCP establecida en us-east-1:

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

Ejemplo de una opción de DHCP establecida en otras regiones:

domain-name: [nombre de la región].compute.internal
domain-name-servers: AmazonProvidedDNS

Ejemplo de un conjunto de opciones de DHCP en un DNS personalizado:

domain-name: [nombre DNS personalizado]
domain-name-servers: [servidor de nombres de dominio]

Nota: Reemplace el nombre de la región con su región, el nombre DNS personalizado con su nombre DNS y el servidor de nombres de dominio con su servidor de nombres de dominio.

Para obtener más información, consulte la sección de domain-name en Información general de los conjuntos de opciones de DHCP.

Nota: Si el conjunto de opciones de DHCP está asociado a una VPC que tiene instancias con diversos sistemas operativos, la práctica recomendada consiste en especificar un solo nombre de dominio.

Configure una política de claves para el cifrado de volúmenes de EBS

El rol de servicio del grupo de Auto Scaling debe contar con los siguientes permisos para trabajar con volúmenes de EBS cifrados:

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

Para configurar la política de claves de KMS correcta, consulte Política de claves de AWS KMS necesaria para usar con volúmenes cifrados.

Puede modificar las políticas de claves a fin de permitir que más roles de IAM funcionen con volúmenes de EBS cifrados. Para obtener más información, consulte Permitir el uso de claves de KMS a usuarios clave.

Para obtener más información sobre la administración de acceso a claves de KMS, consulte Administrar el acceso a las claves de KMS.

Actualice la versión de la plantilla de lanzamiento

Nota: Antes de actualizar la plantilla de lanzamiento de EC2 desde el grupo de nodos administrados, cree una versión nueva. Para obtener más información, consulte Crear una nueva plantilla de lanzamiento con los parámetros que defina.

Para actualizar la plantilla de lanzamiento de EC2 desde el grupo de nodos administrados, siga los siguientes pasos:

  1. Abra la consola de EKS.
  2. Seleccione el clúster que contiene el grupo de nodos que desee actualizar.
  3. Elija la pestaña Configuration (Configuración) y, a continuación, seleccione la pestaña Compute (Informática).
  4. En la página de grupos de nodos, en Launch Templates (Plantillas de lanzamiento), elija Change version (Cambiar versión).
  5. Seleccione la versión que se aplicará al grupo de nodos. Asegúrese de que la estrategia de actualización esté configurada en Rolling Update (Actualización progresiva).
  6. Seleccione Update (Actualizar).

Nota: La práctica recomendada consiste en actualizar el grupo de nodos con la nueva versión de la plantilla de lanzamiento de EC2.

Si no ha utilizado una plantilla de lanzamiento personalizada y ve el error Ec2LaunchTemplateVersionMismatch, significa que los nodos de trabajo no usan la misma versión que el grupo de nodos de EKS. Para resolver el problema, visite la consola de Auto Scaling a fin de regresar a la versión que creó EKS. Para obtener más información, consulte Errores de grupos de nodos administrados.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?