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
nota
Las capacidades de EKS son completamente administradas y se ejecutan fuera del clúster. No tiene acceso directo 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, la configuración y los registros del controlador. Puede configurar la entrega de registros del controlador para obtener visibilidad del comportamiento del controlador. Consulte Acceso a los registros del controlador de Capacidades de EKS.
Enfoque general para la solución de problemas
Al solucionar problemas de las capacidades de EKS, siga este enfoque general:
-
Compruebe el estado de la capacidad: utilice
aws eks describe-capabilitypara ver el estado de la capacidad y los problemas de estado. -
Compruebe el estado de los recursos: compruebe los eventos y las condiciones de estado de los recursos de Kubernetes (CRD) que ha creado.
-
Revise los registros del controlador: si la entrega de registros está configurada, consulte los registros del controlador para ver si hay errores y detalles de conciliación
-
Revise los permisos de IAM: asegúrese de que el rol de capacidad tenga los permisos necesarios.
-
Compruebe la configuración: compruebe que la configuración específica de la capacidad sea correcta.
Uso de registros del controlador para solucionar problemas
Si ha configurado la entrega de registros del controlador (consulte Acceso a los registros del controlador de Capacidades de EKS), puede consultar los registros para identificar los errores de conciliación, los conflictos de los recursos y los problemas de configuración.
Consulta de errores en todos los controladores
fields @timestamp, controller, message, error | filter level = "error" | sort @timestamp desc | limit 50
Filtrado de registros para un controlador de servicios de ACK específico
Utilice el campo controllerGroup para aislar los registros de un controlador de servicio de ACK específico:
fields @timestamp, message, error | filter controllerGroup = "s3.services.k8s.aws" | filter level = "error" | sort @timestamp desc
Para filtrar aún más por tipo de recurso (por ejemplo, solo los registros SecurityGroup del controlador de EC2):
fields @timestamp, message, error | filter controllerGroup = "ec2.services.k8s.aws" | filter controllerKind = "SecurityGroup" | sort @timestamp desc | limit 100
Filtrado de registros para una aplicación de Argo CD específica
Utilice el campo application para aislar los registros de una aplicación de Argo CD concreta:
fields @timestamp, message, error | filter application = "my-application" | sort @timestamp desc | limit 100
Seguimiento de la conciliación de un recurso específico
Utilice el campo reconcileID para hacer un seguimiento de un único ciclo de conciliación:
fields @timestamp, level, message, error | filter reconcileID = "your-reconcile-id" | sort @timestamp asc
Patrones de registros comunes que indican problemas
-
Errores de conciliación repetidos: el controlador no puede alcanzar el estado deseado para un recurso. Compruebe el campo
errorpara ver detalles como errores en los permisos de IAM o configuraciones de recursos no válidas. -
“Error de conciliación” con errores de la API de AWS: es posible que al rol de capacidad le falten permisos para una operación de servicio de AWS específica. Revise el mensaje de error y actualice las políticas de IAM en consecuencia.
-
No hay entradas de registro para un recurso: si no ve los registros de un recurso que espera que el controlador concilie, verifique que la capacidad esté
ACTIVEy que el recurso exista en un espacio de nombres al que pueda acceder la capacidad.
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:
-
Abra la consola de Amazon EKS en https://console.aws.amazon.com/eks/home#/clusters.
-
Seleccione el nombre del clúster.
-
Seleccione la pestaña Observabilidad.
-
Elija Supervisar clúster.
-
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 \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-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 está accesible
-
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 getresource-kind-A # Describe a specific resource to see conditions and events kubectl describeresource-kindresource-name-nnamespace# View resource status conditions kubectl getresource-kindresource-name-nnamespace-o jsonpath='{.status.conditions}' # View events related to the resource kubectl get events --field-selector involvedObject.name=resource-name-nnamespace
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-namemy-capability-role# List inline policies aws iam list-role-policies --role-namemy-capability-role# Get specific policy details aws iam get-role-policy --role-namemy-capability-role--policy-namepolicy-name# View the role's trust policy aws iam get-role --role-namemy-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-namemy-cluster\ --regionregion-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-namemy-cluster\ --principal-arnarn:aws:iam::111122223333:role/my-capability-role\ --regionregion-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-nametarget-cluster\ --principal-arnarn:aws:iam::111122223333:role/argocd-capability-role\ --regionregion-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:
-
Solución de problemas con capacidades de ACK: solución de problemas relacionados con la creación de recursos de ACK, los permisos de IAM y el acceso entre cuentas
-
Solución de problemas con capacidades de Argo CD: solución de problemas de sincronización de aplicaciones, autenticación de repositorios e implementaciones de varios clústeres
-
Solución de problemas con capacidades de kro: solución de problemas de ResourceGraphDefinitions, expresiones de CEL y permisos de RBAC
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:
-
Verifique el estado de la capacidad para identificar problemas específicos en la consola (Observabilidad > Supervisar clúster > pestaña Capacidades) o mediante la AWS CLI.
aws eks describe-capability \ --regionregion-code\ --cluster-namemy-cluster\ --capability-namemy-capability-name\ --query 'capability.health' -
Compruebe si el rol de IAM existe y tiene la política de confianza correcta.
-
Asegúrese de que el clúster sea accesible y esté en buen estado.
-
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:
-
Compruebe el estado del recurso para ver si hay condiciones de error.
-
Compruebe los permisos de IAM para los servicios de AWS (ACK) o repositorios (Argo CD) específicos.
-
Compruebe los permisos de RBAC para crear recursos subyacentes (kro).
-
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:
-
Lea atentamente las descripciones de los problemas, ya que suelen indicar el problema específico.
-
Aborde la causa raíz (permisos de IAM, errores de configuración, etc.).
-
La capacidad se recuperará automáticamente una vez que se resuelva el problema.
Siguientes pasos
-
Uso de recursos de capacidades: administración de los recursos de la capacidad
-
Solución de problemas con capacidades de ACK: solución de problemas específicos de ACK
-
Solución de problemas con capacidades de Argo CD: solución de problemas específicos de Argo CD
-
Solución de problemas con capacidades de kro: solución de problemas específicos de kro
-
Consideraciones sobre la seguridad para las capacidades de EKS: prácticas recomendadas de seguridad para capacidades