

 **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 con capacidades de ACK
<a name="ack-troubleshooting"></a>

En este tema se proporcionan instrucciones para la solución de problemas de la capacidad de EKS para ACK, como las comprobaciones de estado de la capacidad, la verificación del estado de los recursos y los problemas de permisos de IAM.

**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 de IAM.

## La capacidad está ACTIVA, pero no se crean recursos
<a name="_capability_is_active_but_resources_arent_being_created"></a>

Si la capacidad de ACK muestra el estado `ACTIVE`, pero no se están creando recursos en AWS, compruebe el estado de la capacidad, el estado de los recursos y los permisos de IAM.

 **Compruebe el estado de la capacidad**:

Puede ver los problemas de estado de la capacidad en la consola de EKS o mediante la AWS CLI.

 **Consola**:

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

1. Seleccione el nombre del clúster.

1. Seleccione la pestaña **Observabilidad**.

1. Elija **Supervisar clúster**.

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

 ** AWS CLI**:

```
# View capability status and health
aws eks describe-capability \
  --region region-code \
  --cluster-name my-cluster \
  --capability-name my-ack

# Look for issues in the health section
```

 **Causas habituales**:
+  **Faltan permisos de IAM**: el rol de capacidad no tiene permisos para el servicio de AWS.
+  **Espacio de nombres incorrecto**: los recursos se crearon en un espacio de nombres sin el IAMRoleSelector adecuado.
+  **Especificación de recurso no válida**: compruebe las condiciones del estado del recurso para ver si hay errores de validación.
+  **Limitación de la API**: se están alcanzando los límites de velocidad de la API de AWS.
+  **Webhooks de admisión**: los webhooks de admisión impiden que el controlador corrija el estado de los recursos.

 **Compruebe el estado del recurso**:

```
# Describe the resource to see conditions and events
kubectl describe bucket my-bucket -n default

# Look for status conditions
kubectl get bucket my-bucket -n default -o jsonpath='{.status.conditions}'

# View resource events
kubectl get events --field-selector involvedObject.name=my-bucket -n default
```

 **Verifique los permisos de IAM**:

```
# View the Capability Role's policies
aws iam list-attached-role-policies --role-name my-ack-capability-role
aws iam list-role-policies --role-name my-ack-capability-role

# Get specific policy details
aws iam get-role-policy --role-name my-ack-capability-role --policy-name policy-name
```

## Recursos creados en AWS que no se muestran en Kubernetes
<a name="resources_created_in_shared_aws_but_not_showing_in_kubernetes"></a>

ACK solo hace el seguimiento de los recursos que crea a través de los manifiestos de Kubernetes. Para administrar los recursos de AWS existentes con ACK, use la característica de adopción.

```
apiVersion: s3.services.k8s.aws/v1alpha1
kind: Bucket
metadata:
  name: existing-bucket
  annotations:
    services.k8s.aws/adoption-policy: "adopt-or-create"
spec:
  name: my-existing-bucket-name
```

Para obtener más información sobre la adopción de recursos, consulte [Conceptos de ACK](ack-concepts.md).

## No se están creando recursos entre cuentas
<a name="_cross_account_resources_not_being_created"></a>

Si los recursos no se crean en una cuenta de AWS de destino al utilizar los selectores de roles de IAM, compruebe la relación de confianza y la configuración de IAMRoleSelector.

 **Verifique la relación de confianza**:

```
# Check the trust policy in the target account role
aws iam get-role --role-name cross-account-ack-role --query 'Role.AssumeRolePolicyDocument'
```

La política de confianza debe permitir que el rol de capacidad de la cuenta de origen la asuma.

 **Confirme la configuración de IAMRoleSelector**:

```
# List IAMRoleSelectors (cluster-scoped)
kubectl get iamroleselector

# Describe specific selector
kubectl describe iamroleselector my-selector
```

 **Compruebe la alineación del espacio de nombres**:

Los IAMRoleSelectors son recursos de ámbito del clúster, pero tienen como destino espacios de nombres específicos. Asegúrese de que sus recursos de ACK estén en un espacio de nombres que coincida con el selector de espacios de nombres de IAMRoleSelector:

```
# Check resource namespace
kubectl get bucket my-cross-account-bucket -n production

# List all IAMRoleSelectors (cluster-scoped)
kubectl get iamroleselector

# Check which namespace the selector targets
kubectl get iamroleselector my-selector -o jsonpath='{.spec.namespaceSelector}'
```

 **Compruebe la condición de IAMRoleSelected**:

Para comprobar que el IAMRoleSelector haya coincidido correctamente con su recurso, compruebe la condición `ACK.IAMRoleSelected`:

```
# Check if IAMRoleSelector was matched
kubectl get bucket my-cross-account-bucket -n production -o jsonpath='{.status.conditions[?(@.type=="ACK.IAMRoleSelected")]}'
```

Si la condición es `False` o falta, el selector de espacios de nombres de IAMRoleSelector no coincide con el espacio de nombres del recurso. Compruebe que el `namespaceSelector` del selector coincida con las etiquetas del espacio de nombres del recurso.

 **Compruebe los permisos del rol de capacidad**:

El rol de la capacidad necesita los permisos `sts:AssumeRole` y `sts:TagSession` para el rol de la cuenta de destino:

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["sts:AssumeRole", "sts:TagSession"],
      "Resource": "arn:aws:iam::[.replaceable]`444455556666`:role/[.replaceable]`cross-account-ack-role`"
    }
  ]
}
```

Para obtener información detallada sobre la configuración entre cuentas, consulte [Configuración de los permisos de ACK](ack-permissions.md).

## Siguientes pasos
<a name="_next_steps"></a>
+  [Consideraciones sobre ACK para EKS](ack-considerations.md): consideraciones y prácticas recomendadas
+  [Configuración de los permisos de ACK](ack-permissions.md): configuración de los permisos de IAM y los patrones de varias cuentas
+  [Conceptos de ACK](ack-concepts.md): descripción de los conceptos de ACK y el ciclo de vida de los recursos
+  [Solución de problemas de capacidades de EKS](capabilities-troubleshooting.md): orientación general de solución de problemas de la capacidad