

 **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>

**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 ou 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 com o status ACTIVE, mas os recursos não estão sendo criados
<a name="_capability_is_active_but_resources_are_not_being_created"></a>

Se a funcionalidade do ACK exibir o status `ACTIVE`, mas os recursos não estiverem sendo criados na AWS, verifique a integridade da funcionalidade, o status do recurso 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\#/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>

Caso os recursos não sejam criados em uma conta da AWS de destino ao utilizar o seletor de perfil do IAM, certifique-se de verificar o relacionamento 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")]}'
```

Caso a condição seja `False` ou esteja ausente, o seletor de namespace do IAMRoleSelector não coincidirá com o 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": [.replaceable]`"arn:aws:iam::444455556666:role/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