Solução de problemas em funcionalidades do Argo CD - 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 em funcionalidades do Argo CD

Este tópico fornece orientações de solução de problemas para a funcionalidade do EKS destinada ao Argo CD, incluindo verificações de integridade da funcionalidade, problemas de sincronização de aplicações, autenticação de repositórios e implantações em vários clusters.

nota

As funcionalidades do EKS são totalmente gerenciadas e executadas de forma externa ao cluster. Você não tem acesso aos logs do servidor do Argo CD nem ao namespace argocd. A solução de problemas se concentra na integridade da funcionalidade, no status das aplicações e na configuração.

Funcionalidade está com o status ACTIVE, mas as aplicações não estão sincronizando

Se a funcionalidade do Argo CD apresentar o status ACTIVE, mas as aplicações não estiverem sincronizando, verifique a integridade da funcionalidade e o status das aplicações.

Verifique a integridade da funcionalidade:

Você pode 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.

  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.

AWS CLI:

# View capability status and health aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-argocd # Look for issues in the health section

Causas comuns:

  • Repositório não configurado: o repositório do Git não foi adicionado ao Argo CD

  • Falha na autenticação: a chave SSH, o token ou as credenciais do CodeCommit estão inválidos

  • Aplicação não criada: não existem recursos de Application no cluster

  • Política de sincronização: a sincronização manual é necessária (sincronização automática não habilitada)

  • Permissões do IAM: as permissões estão ausentes para o CodeCommit ou o Secrets Manager

Verifique o status da aplicação:

# List applications kubectl get application -n argocd # View sync status kubectl get application my-app -n argocd -o jsonpath='{.status.sync.status}' # View application health kubectl get application my-app -n argocd -o jsonpath='{.status.health}'

Verifique as condições da aplicação:

# Describe application to see detailed status kubectl describe application my-app -n argocd # View application health kubectl get application my-app -n argocd -o jsonpath='{.status.health}'

Aplicações travadas no estado “Progressing”

Se uma aplicação estiver em Progressing mas nunca atingir Healthy, verifique o status dos recursos da aplicação e os eventos.

Verifique a integridade do recurso:

# View application resources kubectl get application my-app -n argocd -o jsonpath='{.status.resources}' # Check for unhealthy resources kubectl describe application my-app -n argocd | grep -A 10 "Health Status"

Causas comuns:

  • Implantação não está pronta: os pods não conseguem iniciar ou as sondagens de prontidão apresentam falhas

  • Dependências entre recursos: existem recursos esperando que outros recursos fiquem prontos

  • Erros ao obter imagens: as imagens de contêiner não estão acessíveis

  • Recursos insuficientes: o cluster não tem CPU ou memória suficiente para os pods

Verifique a configuração do cluster de destino (para configurações com vários clusters):

# List registered clusters kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster # View cluster secret details kubectl get secret cluster-secret-name -n argocd -o yaml

Falhas na autenticação do repositório

Se o Argo CD não conseguir acessar seus repositórios do Git, verifique a configuração de autenticação.

Para repositórios do CodeCommit:

Verifique se o perfil da funcionalidade do IAM tem as permissões necessárias para o CodeCommit:

# View IAM policies aws iam list-attached-role-policies --role-name my-argocd-capability-role aws iam list-role-policies --role-name my-argocd-capability-role # Get specific policy details aws iam get-role-policy --role-name my-argocd-capability-role --policy-name policy-name

É necessário que o perfil conte com a permissão codecommit:GitPull para os repositórios.

Para repositórios do Git privados:

Verifique se as credenciais do repositório estão configuradas corretamente:

# Check repository secret exists kubectl get secret -n argocd repo-secret-name -o yaml

Certifique-se de que o segredo contenha as credenciais de autenticação adequadas (por exemplo, chave SSH, token ou usuário/senha).

Para repositórios que usam o Secrets Manager:

# Verify IAM Capability Role has Secrets Manager permissions aws iam list-attached-role-policies --role-name my-argocd-capability-role # Test secret retrieval aws secretsmanager get-secret-value --secret-id arn:aws:secretsmanager:region-code:111122223333:secret:my-secret

Problemas relacionados à implantação em vários clusters

Se as aplicações não estiverem sendo implantadas em clusters remotos, verifique o registro do cluster e a configuração de acesso.

Verifique o registro do cluster:

# List registered clusters kubectl get secret -n argocd -l argocd.argoproj.io/secret-type=cluster # Verify cluster secret format kubectl get secret CLUSTER_SECRET_NAME -n argocd -o yaml

Certifique-se de que o campo server contenha o ARN do cluster EKS, e não o URL da API do Kubernetes.

Verifique a entrada de acesso do cluster de destino:

No cluster de destino, confirme que o perfil da funcionalidade do IAM destinado ao Argo CD conta com uma entrada de acesso:

# List access entries (run on target cluster or use AWS CLI) aws eks list-access-entries --cluster-name target-cluster # Describe specific access entry aws eks describe-access-entry \ --cluster-name target-cluster \ --principal-arn arn:aws:iam::[.replaceable]111122223333:role/my-argocd-capability-role

Verifique as permissões do IAM para várias contas:

Para implantações entre contas, confirme que o perfil da funcionalidade do IAM destinado ao Argo CD conta com uma entrada de acesso no cluster de destino. A funcionalidade gerenciada emprega entradas de acesso do EKS para o acesso entre contas, e não a suposição do perfil do IAM.

Para obter mais informações sobre configuração de vários clusters, consulte Registro de clusters de destino.

Próximas etapas