Solución de problemas de clústeres locales para Amazon EKS en AWS Outposts - Amazon EKS

Ayude a mejorar esta página

¿Quiere contribuir a esta guía del usuario? Desplácese hasta el final de esta página y seleccione Editar esta página en GitHub. Sus contribuciones ayudarán a que nuestra guía del usuario sea mejor para todos.

Solución de problemas de clústeres locales para Amazon EKS en AWS Outposts

En este tema, se tratan algunos errores habituales que pueden aparecer al usar clústeres locales y cómo solucionarlos. Si bien los clústeres locales son similares a los clústeres de Amazon EKS en la nube, existen algunas diferencias en la forma en que Amazon EKS los administra.

Los clústeres locales se crean mediante la API de Amazon EKS, pero se ejecutan de forma asincrónica. Esto significa que las solicitudes a la API de Amazon EKS se devuelven inmediatamente para los clústeres locales. Sin embargo, estas solicitudes pueden tener éxito, responder rápido a los errores debido a errores de validación de entradas o fallar y tener errores de validación descriptivos. Este comportamiento es similar a la API de Kubernetes.

Los clústeres locales no pasan a un estado FAILED. Amazon EKS intenta conciliar el estado del clúster con el estado deseado solicitado por el usuario de forma continua. Como resultado, un clúster local puede permanecer en el estado CREATING durante un periodo prolongado hasta que se resuelva el problema subyacente.

Los problemas de los clústeres locales se pueden detectar con el comando describe-cluster de la AWS CLI de Amazon EKS. Los problemas de los clústeres locales aparecen en el campo cluster.health de la respuesta del comando describe-cluster. El mensaje contenido en este campo incluye un código de error, un mensaje descriptivo y los ID de los recursos relacionados. Esta información se encuentra disponible solo a través de la API y la AWS CLI de Amazon EKS. En el siguiente ejemplo, reemplace my-cluster por el nombre de su clúster local.

aws eks describe-cluster --name my-cluster --query 'cluster.health'

Un ejemplo de salida sería el siguiente.

{ "issues": [ { "code": "ConfigurationConflict", "message": "The instance type 'm5.large' is not supported in Outpost 'my-outpost-arn'.", "resourceIds": [ "my-cluster-arn" ] } ] }

Si el problema no se puede solucionar, es posible que tenga que eliminar el clúster local y crear uno nuevo. Por ejemplo, intentar aprovisionar un clúster con un tipo de instancia que no está disponible en su Outpost. La siguiente tabla incluye errores comunes relacionados con el estado.

Situación de error Código Mensaje ResourceIds

No se encontraron las subredes proporcionadas.

ResourceNotFound

The subnet ID subnet-id does not exist

Todos los ID de subred proporcionados

Las subredes proporcionadas no pertenecen a la misma VPC.

ConfigurationConflict

Subnets specified must belong to the same VPC

Todos los ID de subred proporcionados

Algunas subredes proporcionadas no pertenecen al Outpost especificado.

ConfigurationConflict

Subnet subnet-id expected to be in outpost-arn, but is in other-outpost-arn

ID de subred problemático

Algunas subredes proporcionadas no pertenecen a ningún Outpost.

ConfigurationConflict

Subnet subnet-id is not part of any Outpost

ID de subred problemático

Algunas subredes proporcionadas no tienen suficientes direcciones libres para crear interfaces de red elásticas para instancias del plano de control

ResourceLimitExceeded

The specified subnet does not have enough free addresses to satisfy the request.

ID de subred problemático

El tipo de instancia del plano de control especificado no es compatible con su Outpost.

ConfigurationConflict

The instance type type is not supported in Outpost outpost-arn

ARN del clúster
Terminó una instancia de Amazon EC2 del plano de control o run-instance se ejecutó correctamente, pero el estado observó cambios en Terminated. Esto puede suceder durante un periodo después de que el Outpost se vuelva a conectar y los errores internos de Amazon EBS provoquen una falla en el flujo de trabajo interno de Amazon EC2.

InternalFailure

EC2 instance state "Terminated" is unexpected

ARN del clúster

La capacidad de su Outpost es insuficiente. Esto también puede ocurrir durante la creación del clúster si un Outpost está desconectado de la Región de AWS.

ResourceLimitExceeded

There is not enough capacity on the Outpost to launch or start the instance.

ARN del clúster
Su cuenta superó la cuota del grupo de seguridad.

ResourceLimitExceeded

Mensaje de error devuelto por la API de Amazon EC2 ID de la VPC de destino
Su cuenta superó la cuota de la interfaz de red elástica.

ResourceLimitExceeded

Mensaje de error devuelto por la API de Amazon EC2 ID de subred de destino

No se pudo acceder a las instancias del plano de control a través de AWS Systems Manager. Para obtener una resolución, consulte No se puede acceder a las instancias del plano de control a través de AWS Systems Manager.

ClusterUnreachable

No se puede acceder a las instancias del plano de control de Amazon EKS mediante SSM. Verifique su SSM y la configuración de red y consulte la documentación de solución de problemas de EKS en Outposts.

ID de instancia de Amazon EC2
Se produjo un error al obtener detalles de un grupo de seguridad administrado o una interfaz de red elástica.

Basado en el código de error del cliente Amazon EC2.

Mensaje de error devuelto por la API de Amazon EC2 Todos los ID de grupo de seguridad administrados
Se produjo un error al autorizar o revocar las reglas de entrada de los grupos de seguridad. Esto se aplica a los grupos de seguridad del clúster y del plano de control. Basado en el código de error del cliente Amazon EC2. Mensaje de error devuelto por la API de Amazon EC2 ID de grupo de seguridad problemático
Se produjo un error al eliminar una interfaz de red elástica para una instancia del plano de control Basado en el código de error del cliente Amazon EC2. Mensaje de error devuelto por la API de Amazon EC2 ID de interfaz de red elástica problemático

En la siguiente tabla se enumeran los errores de otros Servicios de AWS que se presentan en el campo de estado de la respuesta describe-cluster.

Código de error de Amazon EC2 Código del problema del estado del clúster Descripción

AuthFailure

AccessDenied

Este error se puede producir por diversas razones. La razón más común es cuando una etiqueta que el servicio usa para determinar el alcance de la política de roles vinculados al servicio se elimina accidentalmente de la instancia del plano de control. Si esto ocurre, Amazon EKS ya no podrá administrar ni supervisar estos recursos de AWS.

UnauthorizedOperation

AccessDenied

Este error se puede producir por diversas razones. La razón más común es cuando una etiqueta que el servicio usa para determinar el alcance de la política de roles vinculados al servicio se elimina accidentalmente de la instancia del plano de control. Si esto ocurre, Amazon EKS ya no podrá administrar ni supervisar estos recursos de AWS.

InvalidSubnetID.NotFound

ResourceNotFound

Este error se produce cuando no se encuentra el ID de subred de las reglas de entrada de un grupo de seguridad.

InvalidPermission.NotFound

ResourceNotFound

Este error se produce cuando los permisos de las reglas de entrada de un grupo de seguridad no son correctos.

InvalidGroup.NotFound

ResourceNotFound

Este error se produce cuando no se encuentra el grupo de reglas de entrada de un grupo de seguridad.

InvalidNetworkInterfaceID.NotFound

ResourceNotFound

Este error se produce cuando no se encuentra el ID de la interfaz de red para las reglas de entrada de un grupo de seguridad.

InsufficientFreeAddressesInSubnet

ResourceLimitExceeded

Este error se produce cuando se supera la cuota de recursos de subred.

InsufficientCapacityOnOutpost

ResourceLimitExceeded

Este error se produce cuando se supera la cuota de capacidad del outpost.

NetworkInterfaceLimitExceeded

ResourceLimitExceeded

Este error se produce cuando se supera la cuota de la interfaz de red elástica.

SecurityGroupLimitExceeded

ResourceLimitExceeded

Este error se produce cuando se supera la cuota del grupo de seguridad.

VcpuLimitExceeded

ResourceLimitExceeded

Esto se observa al crear una instancia de Amazon EC2 en una cuenta nueva. El error podría ser similar al siguiente: “You have requested more vCPU capacity than your current vCPU limit of 32 allows for the instance bucket that the specified instance type belongs to. Please visit http://aws.amazon.com/contact-us/ec2-request to request an adjustment to this limit."

InvalidParameterValue

ConfigurationConflict

Amazon EC2 devuelve este código de error si el tipo de instancia especificado no es compatible con Outpost.

Todas las demás fallas

InternalFailure

Ninguna

Los clústeres locales requieren permisos y políticas diferentes a los de los clústeres de Amazon EKS alojados en la nube. Cuando un clúster no se puede crear y produce un error InvalidPermissions, compruebe que el rol de clúster que está usando tiene la política administrada AmazonEKSLocalOutpostClusterPolicy asociada. Todas las demás llamadas a la API requieren el mismo conjunto de permisos que los clústeres de Amazon EKS en la nube.

La cantidad de tiempo que tarda en crearse un clúster local varía según varios factores. Estos factores incluyen la configuración de la red, la configuración de Outpost y la configuración del clúster. En general, se crea un clúster local y cambia al estado ACTIVE en un plazo de 15 a 20 minutos. Si un clúster local permanece en el estado CREATING, puede llamar a describe-cluster para solicitar información sobre la causa en el campo de resultado cluster.health.

Los problemas más comunes son los siguientes:

AWS Systems Manager (Systems Manager) encuentra los siguientes problemas:
  • El clúster no puede conectarse a la instancia del plano de control desde la Región de AWS en que se encuentra Systems Manager. Para verificarlo, llame a aws ssm start-session --target instance-id desde un host bastión dentro de la región. Si ese comando no funciona, compruebe si Systems Manager se está ejecutando en la instancia del plano de control. Otra solución alternativa es eliminar el clúster y, a continuación, volver a crearlo.

  • Es posible que las instancias del plano de control de Systems Manager no tengan acceso a Internet. Compruebe si la subred que proporcionó al crear el clúster tiene una puerta de enlace NAT y una VPC con puerta de enlace de Internet. Use el analizador de accesibilidad de la VPC para verificar que la instancia del plano de control puede llegar a la puerta de enlace de Internet. Para obtener más información, consulte Introducción al Analizador de accesibilidad de la VPC.

  • Faltan políticas en el ARN de rol que ha proporcionado. Verifique si Política administrada de AWS: AmazonEKSLocalOutpostClusterPolicy se eliminó del rol. Esto también puede ocurrir si una pila AWS CloudFormation está mal configurada.

Varias subredes están mal configuradas y especificadas al crear un clúster:
  • Todas las subredes proporcionadas deben estar asociadas al mismo Outpost y poder comunicarse entre sí. Cuando se especifican varias subredes al crear un clúster, Amazon EKS intenta distribuir las instancias del plano de control en varias subredes.

  • Los grupos de seguridad administrados de Amazon EKS se aplican en la interfaz de red elástica. Sin embargo, otros elementos de configuración, como las reglas del firewall NACL, pueden entrar en conflicto con las reglas de la interfaz de red elástica.

Falta o está mal configurada la configuración de DNS de la VPC y de la subred

Consulte Requisitos y consideraciones de VPC y subred del clúster local de Amazon EKS.

Causas comunes:
  • Problemas con las AMI:

    • Está usando una AMI no admitida. Debe usar la versión v20220620 o posterior para una AMI de Amazon Linux optimizada para Amazon EKS de Amazon Linux optimizada para Amazon EKS.

    • Si usó una plantilla de AWS CloudFormation para crear sus nodos, asegúrese de que no estaba usando una AMI no compatible.

  • Falta el ConfigMap del Autenticador de IAM de AWS: si falta, tiene que crearlo. Para obtener más información, consulte Aplique el ConfigMap de aws-auth en su clúster.

  • Se ha usado un grupo de seguridad incorrecto: asegúrese de usar eks-cluster-sg-cluster-name-uniqueid para el grupo de seguridad de sus nodos de trabajo. AWS CloudFormation cambia el grupo de seguridad seleccionado para permitir un nuevo grupo de seguridad cada vez que se use la pila.

  • Siguientes pasos inesperados de VPC de enlace privado: se pasan datos de CA incorrectos (--b64-cluster-ca) o del punto de conexión de la API (--apiserver-endpoint).

  • Política de seguridad del Pod mal configurada:

    • Los Daemonsets de CoreDNS y Amazon VPC CNI plugin for Kubernetes deben ejecutarse en los nodos para que los nodos puedan unirse al clúster y comunicarse correctamente con él.

    • El Amazon VPC CNI plugin for Kubernetes requiere algunas características de red privilegiadas para funcionar correctamente. Puede ver las características de red privilegiadas con el siguiente comando: kubectl describe psp eks.privileged.

    No recomendamos modificar la política de seguridad de pod predeterminada. Para obtener más información, consulte Política de seguridad del pod.

Cuando un Outpost se desconecta del servidor al que está asociado la Región de AWS, es probable que el clúster Kubernetes siga funcionando con normalidad. Sin embargo, si el clúster no funciona correctamente, siga los pasos de solución de problemas que se indican en Preparación para las desconexiones de red. Si tiene otros problemas, póngase en contacto con AWS Support. AWS Support puede guiarlo para descargar y ejecutar una herramienta de recopilación de registros. De esta forma, puede recopilar registros de sus instancias del plano de control del clúster de Kubernetes y enviarlas al soporte de AWS Support para una investigación en mayor profundidad.

Cuando no se puede acceder a las instancias del plano de control de Amazon EKS a través de AWS Systems Manager (Systems Manager), Amazon EKS muestra el siguiente error para su clúster.

Amazon EKS control plane instances are not reachable through SSM. Please verify your SSM and network configuration, and reference the EKS on Outposts troubleshooting documentation.

Para resolver este problema, asegúrese de que su VPC y las subredes cumplen con los requisitos de Requisitos y consideraciones de VPC y subred del clúster local de Amazon EKS y que ha completado los pasos de la Configuración del administrador de sesiones en la Guía del usuario de AWS Systems Manager.