

 **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 das funcionalidades do EKS
<a name="capabilities-troubleshooting"></a>

Este tópico fornece orientações gerais para a solução de problemas das funcionalidades do EKS, incluindo verificações de integridade das funcionalidades, problemas comuns e links para o acesso à solução de problemas específica de cada funcionalidade.

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

## Abordagem geral para a solução de problemas
<a name="_general_troubleshooting_approach"></a>

Ao solucionar problemas das funcionalidades do EKS, siga esta abordagem geral:

1.  **Verifique a integridade da funcionalidade**: use `aws eks describe-capability` para visualizar o status da funcionalidade e possíveis problemas de integridade

1.  **Verifique o status dos recursos**: confira os recursos do Kubernetes (CRDs) que você criou, observando condições de status e eventos

1.  **Analise as permissões do IAM**: garanta que o perfil da funcionalidade conte com as permissões necessárias

1.  **Verifique a configuração**: confirme se a configuração específica da funcionalidade está correta

## Verificação da integridade da funcionalidade
<a name="_check_capability_health"></a>

Todas as funcionalidades do EKS fornecem informações de integridade por meio do console do EKS e da API `describe-capability`.

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

A guia Funcionalidades apresenta:
+ Nome e tipo da funcionalidade
+ Status atual
+ Problemas de integridade, acompanhados de descrição

 ** AWS CLI**:

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

A resposta inclui:
+  **status**: estado atual da funcionalidade (`CREATING`, `ACTIVE`, `UPDATING`, `DELETING`, `CREATE_FAILED` ou `UPDATE_FAILED`)
+  **integridade**: informações de integridade, incluindo quaisquer problemas detectados pela funcionalidade

## Status comuns das funcionalidades
<a name="_common_capability_statuses"></a>

 **CREATING**: a funcionalidade está sendo configurada.

 **ACTIVE**: a funcionalidade está em execução e pronta para uso. Se os recursos não estiverem funcionando conforme esperado, verifique o status do recurso e as permissões de IAM.

 **UPDATING**: as alterações de configuração estão sendo aplicadas. Aguarde até que o status retorne para `ACTIVE`.

 **CREATE\$1FAILED** ou **UPDATE\$1FAILED**: o processo de criação ou de atualização apresentou um erro. Confira a seção destinada à integridade para obter mais detalhes. Causas comuns:
+ Política de confiança do perfil do IAM incorreta ou ausente
+ O perfil do IAM não existe ou não está acessível
+ Problemas de acesso ao cluster
+ Parâmetros de configuração inválidos

## Verificação do status dos recursos do Kubernetes
<a name="_verify_kubernetes_resource_status"></a>

As funcionalidades do EKS criam e gerenciam definições de recursos personalizados (CRDs, na sigla em inglês) do Kubernetes em seu cluster. Ao solucionar problemas, verifique o status dos recursos que você criou:

```
# 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
```

As condições de status do recurso fornecem informações sobre:
+ A prontidão do recurso
+ Quaisquer erros encontrados
+ O estado atual de reconciliação

## Análise das permissões do IAM e do acesso ao cluster
<a name="_review_iam_permissions_and_cluster_access"></a>

Diversos problemas relacionados às funcionalidades são causados por permissões inadequadas no IAM ou pela falta de configuração de acesso ao cluster. Verifique tanto as permissões do perfil da funcionalidade quanto as entradas de acesso ao cluster.

### Verificação das permissões do perfil do IAM
<a name="_check_iam_role_permissions"></a>

Confirme se o perfil da funcionalidade detém todas as permissões necessárias:

```
# 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'
```

É necessário que a política de confiança autorize a entidade principal do serviço `capabilities.eks.amazonaws.com`:

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

### Verificação das entradas de acesso e das políticas de acesso do EKS
<a name="_check_eks_access_entries_and_access_policies"></a>

Todas as funcionalidades necessitam de entradas de acesso e de políticas de acesso apropriadas no cluster em que são executadas.

 **Verifique se a entrada de acesso existe**:

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

Procure o ARN do perfil da funcionalidade na lista. Se estiver ausente, a funcionalidade não poderá acessar o cluster.

 **Verifique as políticas de acesso anexadas à 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 as funcionalidades requerem políticas de acesso apropriadas:
+  **ACK**: necessita de permissões para criar e gerenciar recursos do Kubernetes
+  **kro**: necessita de permissões para criar e gerenciar recursos do Kubernetes
+  **Argo CD**: necessita de permissões para criar e gerenciar Applications e requer entradas de acesso nos clusters remotos para implantações em vários clusters

 **Para implantações de vários clusters do Argo CD**:

Ao realizar implantações em clusters remotos, assegure-se de que o perfil da funcionalidade disponha de uma entrada de acesso em cada cluster 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
```

Se a entrada de acesso estiver ausente em algum cluster de destino, o Argo CD não conseguirá implantar aplicações nele. Consulte [Registro de clusters de destino](argocd-register-clusters.md) para obter detalhes sobre a configuração.

## Solução de problemas específicas por funcionalidade
<a name="_capability_specific_troubleshooting"></a>

Para obter orientações detalhadas de solução de problemas específicas relacionadas a cada tipo de funcionalidade:
+  [Solução de problemas em funcionalidades do ACK](ack-troubleshooting.md): solução de problemas na criação de recursos do ACK, permissões do IAM e acesso entre contas
+  [Solução de problemas em funcionalidades do Argo CD](argocd-troubleshooting.md): solução de problemas na sincronização de aplicações, autenticação de repositórios e implantações em vários clusters
+  [Solução de problemas em funcionalidades do kro](kro-troubleshooting.md): solução de problemas em ResourceGraphDefinitions, expressões CEL e permissões RBAC

## Problemas comuns em todas as funcionalidades
<a name="_common_issues_across_all_capabilities"></a>

### Funcionalidade travada no estado CREATING
<a name="_capability_stuck_in_creating_state"></a>

Se uma funcionalidade permanecer no estado `CREATING` por mais tempo do que o esperado:

1. Verifique a integridade da funcionalidade em busca de problemas específicos no console (**Observabilidade** > **Monitorar cluster** > guia **Funcionalidades**) ou usando a CLI da AWS:

   ```
   aws eks describe-capability \
     --region region-code \
     --cluster-name my-cluster \
     --capability-name my-capability-name \
     --query 'capability.health'
   ```

1. Verifique se o perfil do IAM existe e conta com a política de confiança correta

1. Certifique-se de que o cluster esteja acessível e íntegro

1. Verifique se há algum problema no nível do cluster que possa impedir a configuração de recursos

### Recursos não estão sendo criados ou atualizados
<a name="_resources_not_being_created_or_updated"></a>

Se a funcionalidade estiver `ACTIVE`, mas os recursos não estiverem sendo criados ou atualizados:

1. Verifique o status do recurso em busca de erros

1. Verifique as permissões do IAM para os serviços da AWS específicos (ACK) ou para os repositórios (Argo CD)

1. Verifique as permissões RBAC para a criação dos recursos subjacentes (kro)

1. Analise as especificações do recurso em busca de erros de validação

### Problemas de integridade da funcionalidade
<a name="_capability_health_shows_issues"></a>

Se o comando `describe-capability` apresentar problemas de integridade:

1. Leia atentamente as descrições dos problemas, pois elas geralmente indicam a causa específica

1. Corrija a causa raiz (por exemplo, permissões do IAM, erros de configuração e entre outros)

1. A funcionalidade será recuperada automaticamente assim que o problema for resolvido

## Próximas etapas
<a name="_next_steps"></a>
+  [Como trabalhar com recursos de funcionalidade](working-with-capabilities.md): gerenciamento de recursos da funcionalidade
+  [Solução de problemas em funcionalidades do ACK](ack-troubleshooting.md): solução de problemas específica do ACK
+  [Solução de problemas em funcionalidades do Argo CD](argocd-troubleshooting.md): solução de problemas específica do Argo CD
+  [Solução de problemas em funcionalidades do kro](kro-troubleshooting.md): solução de problemas específica do kro
+  [Considerações sobre segurança para funcionalidades do EKS](capabilities-security.md): práticas recomendadas de segurança para as funcionalidades