Solución de problemas de los clústeres locales de 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 del clúster local se pueden descubrir utilizando el comando describe-cluster de la CLI de AWS para 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 CLI de AWS para 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. |
|
|
Todos los ID de subred proporcionados |
Las subredes proporcionadas no pertenecen a la misma VPC. |
|
|
Todos los ID de subred proporcionados |
Algunas subredes proporcionadas no pertenecen al Outpost especificado. |
|
|
ID de subred problemático |
Algunas subredes proporcionadas no pertenecen a ningún 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. |
|
|
ID de subred problemático |
El tipo de instancia del plano de control especificado no es compatible con su Outpost. |
|
|
ARN del clúster |
Terminó una instancia de Amazon EC2 del plano de control o |
|
|
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. |
|
|
ARN del clúster |
Su cuenta superó la cuota del grupo de seguridad. |
|
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. |
|
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. |
|
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 |
---|---|---|
|
|
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. |
|
|
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. |
|
|
Este error se produce cuando no se encuentra el ID de subred de las reglas de entrada de un grupo de seguridad. |
|
|
Este error se produce cuando los permisos de las reglas de entrada de un grupo de seguridad no son correctos. |
|
|
Este error se produce cuando no se encuentra el grupo de reglas de entrada de un grupo de seguridad. |
|
|
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. |
|
|
Este error se produce cuando se supera la cuota de recursos de subred. |
|
|
Este error se produce cuando se supera la cuota de capacidad del outpost. |
|
|
Este error se produce cuando se supera la cuota de la interfaz de red elástica. |
|
|
Este error se produce cuando se supera la cuota del grupo de seguridad. |
|
|
Esto se observa al crear una instancia de Amazon EC2 en una cuenta nueva. El error podría ser similar al siguiente: “ |
|
|
Amazon EC2 devuelve este código de error si el tipo de instancia especificado no es compatible con Outpost. |
Todas las demás fallas |
|
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 de InvalidPermissions
, compruebe que el rol de clúster que está utilizando tenga la política administrada AmazonEKSLocalOutpostClusterPolicy adjunta. 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:
-
El clúster no puede conectarse a la instancia del plano de control desde la región de AWS en la que se encuentra Systems Manager. Para verificarlo, llame a
aws ssm start-session --target
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.instance-id
-
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 se eliminó la política administrada AWS: AmazonEKSLocalOutpostClusterPolicy del rol. Esto también puede ocurrir si una pila de AWS CloudFormation está mal configurada.
-
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
Revise Creación de una VPC y subredes para clústeres de Amazon EKS en AWS Outposts.
-
Problemas con las AMI:
-
Está utilizando una AMI no admitida. Debe utilizar la versión v20220620
o posterior para la Creación de nodos con AMI de Amazon Linux optimizadas. -
Si utilizó una plantilla de AWS CloudFormation para crear sus nodos, asegúrese de que no estaba utilizando 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-
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 utilice la pila.cluster-name
-uniqueid
-
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 Comprensión de las políticas de seguridad de los pods (PSP) creadas por Amazon EKS.
-
Cuando un Outpost se desconecta del servidor al que está asociado la región de AWS, es probable que el clúster de 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 de los clústeres locales de Amazon EKS en AWS Outposts para las desconexiones de la red. Si encuentra algún problema, 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 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, 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 que están en Creación de una VPC y subredes para clústeres de Amazon EKS en AWS Outposts y que ha completado los pasos de Configuración del administrador de sesiones en la Guía del usuario de AWS Systems Manager.