Solução de problemas das funcionalidades do EKS - Amazon EKS

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

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

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

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

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

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

Verificação da integridade da funcionalidade

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#/clusters.

  2. Selecione o nome do seu cluster.

  3. Escolha a guia Observabilidade.

  4. Escolha Monitorar cluster.

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

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_FAILED ou UPDATE_FAILED: 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

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

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

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

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 para obter detalhes sobre a configuração.

Solução de problemas específicas por funcionalidade

Para obter orientações detalhadas de solução de problemas específicas relacionadas a cada tipo de funcionalidade:

Problemas comuns em todas as funcionalidades

Funcionalidade travada no estado CREATING

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'
  2. Verifique se o perfil do IAM existe e conta com a política de confiança correta

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

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

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

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

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

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

Problemas de integridade da funcionalidade

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

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

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

Próximas etapas