

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Solução de problemas em funcionalidades do ACK
<a name="ack-troubleshooting"></a>

Este tópico fornece orientações para a solução de problemas à funcionalidade do EKS para o ACK, incluindo verificações de integridade da funcionalidade, verificação do status dos recursos e problemas relacionados à permissão do IAM.

**nota**  
As funcionalidades do EKS são totalmente gerenciadas e executadas de forma externa ao cluster. Você não tem acesso aos logs do controlador nem aos namespaces do controlador. A solução de problemas se concentra na integridade da funcionalidade, no status dos recursos e na configuração do IAM.

## Funcionalidade está no status ACTIVE, mas os recursos não estão sendo criados
<a name="_capability_is_active_but_resources_arent_being_created"></a>

Se a sua funcionalidade do ACK apresentar o status `ACTIVE`, mas os recursos não estiverem sendo criados na AWS, verifique a integridade da funcionalidade, o status dos recursos e as permissões do IAM.

 **Verifique a integridade da funcionalidade**:

É possível visualizar problemas de integridade e de status da funcionalidade no console do EKS ou usando a AWS CLI.

 **Console do**:

1. Abra o console do Amazon EKS em https://console.aws.amazon.com/eks/home\$1/clusters.

1. Selecione o nome do seu cluster.

1. Escolha a guia **Observabilidade**.

1. Escolha **Monitorar cluster**.

1. Escolha a guia **Funcionalidades** para visualizar a integridade e o status de todas as funcionalidades.

 ** 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 comuns**:
+  **Ausência de permissões do IAM**: o perfil da funcionalidade não conta com permissões para o serviço da AWS
+  **Namespace incorreto**: recursos criados em um namespace sem o IAMRoleSelector adequado
+  **Especificação de recurso inválida**: é necessário verificar as condições de status do recurso para encontrar erros de validação
+  **Controle de utilização da API**: os limites de taxa da API da AWS foram atingidos
+  **Webhooks de admissão**: os webhooks de admissão estão impedindo o controlador de atualizar o status do recurso

 **Verifique o status do 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 as permissões do 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 são criados na AWS, mas que não aparecem no Kubernetes
<a name="resources_created_in_shared_aws_but_not_showing_in_kubernetes"></a>

O ACK rastreia apenas os recursos criados por meio de manifestos do Kubernetes. Para gerenciar recursos existentes da AWS com o ACK, empregue o recurso de adoção.

```
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 obter mais informações sobre a adoção de recursos, consulte [Conceitos do ACK](ack-concepts.md).

## Recursos entre contas não estão sendo criados
<a name="_cross_account_resources_not_being_created"></a>

Se os recursos não estiverem sendo criados em uma conta de destino da AWS ao usar os seletores de perfil do IAM, verifique a relação de confiança e a configuração do IAMRoleSelector.

 **Verifique a relação de confiança**:

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

A política de confiança deve permitir que o perfil da funcionalidade da conta de origem a assuma.

 **Confirme a configuração do IAMRoleSelector**:

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

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

 **Verifique o alinhamento do namespace**:

Os IAMRoleSelectors são recursos de escopo do cluster, mas operam em namespaces específicos. Certifique-se de que os recursos do ACK estejam em um namespace que corresponda ao selecionador de namespace do 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}'
```

 **Verifique a condição IAMRoleSelected**:

Verifique se o IAMRoleSelector foi correspondido com sucesso ao seu recurso, consultando a condição `ACK.IAMRoleSelected`:

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

Se a condição for `False` ou estiver ausente, o selecionador de namespace do IAMRoleSelector não corresponde ao namespace do recurso. Verifique se o `namespaceSelector` do seletor corresponde aos rótulos de namespace do seu recurso.

 **Verifique as permissões do perfil da funcionalidade**:

O perfil de funcionalidade precisa das permissões `sts:AssumeRole` e `sts:TagSession` para o perfil da conta 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 obter informações detalhadas sobre a configuração entre contas, consulte [Configuração das permissões do ACK](ack-permissions.md).

## Próximas etapas
<a name="_next_steps"></a>
+  [Considerações sobre o ACK para o EKS](ack-considerations.md): acesse considerações e práticas recomendadas do ACK
+  [Configuração das permissões do ACK](ack-permissions.md): configure permissões do IAM e padrões para várias contas
+  [Conceitos do ACK](ack-concepts.md): compreenda os conceitos do ACK e o ciclo de vida dos recursos
+  [Solução de problemas das funcionalidades do EKS](capabilities-troubleshooting.md): acesse orientações gerais para solução de problemas de funcionalidades