Solución de problemas de capacidades de EKS - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Solución de problemas de capacidades de EKS

En este tema, se proporciona una guía general de solución de problemas para las capacidades de EKS, lo que incluye las comprobaciones de estado de las capacidades, los problemas comunes y los enlaces a la solución de problemas específicos de las capacidades.

nota

Las capacidades de EKS son completamente administradas y se ejecutan fuera del clúster. No tiene acceso a los registros ni a los espacios de nombres de los controladores. La solución de problemas se centra en el estado de la capacidad, el estado de los recursos y la configuración.

Enfoque general para la solución de problemas

Al solucionar problemas de las capacidades de EKS, siga este enfoque general:

  1. Compruebe el estado de la capacidad: utilice aws eks describe-capability para ver el estado de la capacidad y los problemas de estado.

  2. Compruebe el estado de los recursos: compruebe los eventos y las condiciones de estado de los recursos de Kubernetes (CRD) que ha creado.

  3. Revise los permisos de IAM: asegúrese de que el rol de capacidad tenga los permisos necesarios.

  4. Compruebe la configuración: compruebe que la configuración específica de la capacidad sea correcta.

Comprobación de estado de la capacidad

Todas las capacidades de EKS proporcionan información sobre el estado a través de la consola de EKS y la API describe-capability.

Consola:

  1. Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.

  2. Seleccione el nombre del clúster.

  3. Seleccione la pestaña Observabilidad.

  4. Elija Supervisar clúster.

  5. Seleccione la pestaña Capacidades para ver el estado de todas las capacidades.

La pestaña Capacidades muestra lo siguiente:

  • Nombre y tipo de capacidad

  • Estado actual

  • Problemas de estado, con descripción

AWS CLI:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name

La respuesta incluye:

  • estado: estado actual de la capacidad (CREATING, ACTIVE, UPDATING, DELETING, CREATE_FAILED, UPDATE_FAILED)

  • estado: información sobre el estado, incluidos los problemas detectados por la capacidad

Estados de capacidad comunes

CREANDO: Se está configurando la capacidad.

ACTIVA: la capacidad está en ejecución y lista para usarse. Si los recursos no funcionan según lo esperado, compruebe el estado de los recursos y los permisos de IAM.

ACTUALIZANDO: se están aplicando cambios en la configuración. Espere a que el estado vuelva a ser ACTIVE.

CREATE_FAILED o UPDATE_FAILED: la configuración o la actualización detectaron un error. Consulte la sección sobre el estado para obtener más información. Causas comunes:

  • Falta la política de confianza del rol de IAM o no se encuentra

  • El rol de IAM no existe o no se puede acceder a él

  • Problemas de acceso al clúster

  • Parámetros de configuración no válidos

Comprobación del estado de los recursos de Kubernetes

Las capacidades de EKS crean y administran definiciones de recursos personalizados (CRD) de Kubernetes en el clúster. Al solucionar problemas, compruebe el estado de los recursos que creó:

# List resources of a specific type kubectl get resource-kind -A # Describe a specific resource to see conditions and events kubectl describe resource-kind resource-name -n namespace # View resource status conditions kubectl get resource-kind resource-name -n namespace -o jsonpath='{.status.conditions}' # View events related to the resource kubectl get events --field-selector involvedObject.name=resource-name -n namespace

Las condiciones de estado de los recursos proporcionan información sobre:

  • Si el recurso está listo

  • Cualquier error encontrado

  • Estado de conciliación actual

Revisión de los permisos de IAM y el acceso al clúster

Muchos problemas de las capacidades se deben a problemas con los permisos de IAM o a la falta de una configuración de acceso al clúster. Compruebe los permisos del rol de capacidad y las entradas de acceso al clúster.

Comprobación de los roles de IAM

Compruebe que el rol de capacidad tenga los permisos necesarios:

# List attached managed policies aws iam list-attached-role-policies --role-name my-capability-role # List inline policies aws iam list-role-policies --role-name my-capability-role # Get specific policy details aws iam get-role-policy --role-name my-capability-role --policy-name policy-name # View the role's trust policy aws iam get-role --role-name my-capability-role --query 'Role.AssumeRolePolicyDocument'

La política de confianza debe permitir la entidad principal de servicio capabilities.eks.amazonaws.com:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Comprobación de las entradas y políticas de acceso de EKS

Todas las capacidades requieren entradas de acceso y políticas de acceso de EKS adecuadas en el clúster en el que operan.

Compruebe que la entrada de acceso exista:

aws eks list-access-entries \ --cluster-name my-cluster \ --region region-code

Busque el ARN del rol de capacidad en la lista. Si falta, la capacidad no puede acceder al clúster.

Compruebe las políticas de acceso adjuntas a la entrada:

aws eks list-associated-access-policies \ --cluster-name my-cluster \ --principal-arn arn:aws:iam::111122223333:role/my-capability-role \ --region region-code

Todas las capacidades requieren políticas de acceso adecuadas:

  • ACK: necesita permisos para crear y administrar los recursos de Kubernetes.

  • kro: necesita permisos para crear y administrar los recursos de Kubernetes.

  • Argo CD: necesita permisos para crear y administrar aplicaciones, así como entradas de acceso en clústeres de destino remotos para implementaciones de varios clústeres.

Para las implementaciones de varios clústeres de Argo CD:

Si se implementa en clústeres remotos, compruebe que el rol de capacidad tenga una entrada de acceso en cada clúster de destino:

# Check Access Entry on target cluster aws eks describe-access-entry \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::111122223333:role/argocd-capability-role \ --region region-code

Si falta la entrada de acceso en un clúster de destino, Argo CD no podrá implementar aplicaciones en él. Consulte Registro de clústeres de destino para obtener información detallada sobre la configuración.

Solución de problemas específicos de la capacidad

Para obtener una guía detallada de solución de problemas específica para cada tipo de capacidad:

Problemas comunes en todas las capacidades

La capacidad se ha bloqueado en el estado CREANDO

Si una capacidad permanece en el estado CREATING durante más tiempo del esperado:

  1. Verifique el estado de la capacidad para identificar problemas específicos en la consola (Observabilidad > Supervisar clúster > pestaña Capacidades) o mediante la CLI de AWS.

    aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-capability-name \ --query 'capability.health'
  2. Compruebe si el rol de IAM existe y tiene la política de confianza correcta.

  3. Asegúrese de que el clúster sea accesible y esté en buen estado.

  4. Compruebe si hay algún problema en el clúster que pueda impedir la configuración de la capacidad.

Los recursos no se crean o actualizan

Si la capacidad es ACTIVE, pero los recursos no se crean o actualizan:

  1. Compruebe el estado del recurso para ver si hay condiciones de error.

  2. Compruebe los permisos de IAM para los servicios de AWS (ACK) o repositorios (Argo CD) específicos.

  3. Compruebe los permisos de RBAC para crear recursos subyacentes (kro).

  4. Revise las especificaciones de los recursos para ver si hay errores de validación.

El estado de la capacidad muestra problemas

Si describe-capability muestra problemas de estado:

  1. Lea atentamente las descripciones de los problemas, ya que suelen indicar el problema específico.

  2. Aborde la causa raíz (permisos de IAM, errores de configuración, etc.).

  3. La capacidad se recuperará automáticamente una vez que se resuelva el problema.

Siguientes pasos