Guia de instalação (AWS CLI)
Este guia orienta você na instalação do Enhanced Container Insights (Classic) em um cluster do Amazon EKS existente usando a AWS CLI. O complemento implanta um atendente do CloudWatch como um DaemonSet que coleta métricas de infraestrutura, logs de contêineres e dados de desempenho.
Modo de manutenção
O Enhanced Container Insights (Classic) está em modo de manutenção. Para novas implantações, recomendamos o OTel Container Insights (recomendado).
Pré-requisitos
Antes de começar, certifique-se de cumprir os requisitos a seguir.
-
Um cluster existente do Amazon EKS executando o Kubernetes versão 1.25 ou posterior
-
Versão da plataforma
eks.1ou posterior -
AWS CLI versão 2.12.0 ou posterior
-
kubectlconfigurado para comunicar-se com o cluster de destino -
Permissões do IAM:
eks:CreateAddon,eks:DescribeAddon,iam:CreateServiceLinkedRole,iam:CreateRoleeiam:AttachRolePolicy -
O complemento do atendente de Identidade de Pods EKS instalado no cluster ou perfis do IAM para contas de serviço (IRSA) configurados
-
Acesso à Internet de saída do cluster para os endpoints do CloudWatch
Etapa 1: Criar o perfil do IAM
Cria um perfil do IAM para permitir que o atendente do CloudWatch envie dados ao CloudWatch.
Para criar um perfil do IAM para o atendente do CloudWatch
-
Execute o seguinte comando para criar a função com uma política de confiança para a Identidade de Pods EKS.
aws iam create-role \ --role-name EKS-CloudWatch-Agent-Role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] }] }' -
Anexe a política gerenciada
CloudWatchAgentServerPolicyà função.aws iam attach-role-policy \ --role-name EKS-CloudWatch-Agent-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Etapa 2: crie a associação de Identidade de Pods
Associe o perfil do IAM à conta de serviço do atendente do CloudWatch no cluster.
Para criar a associação da Identidade de Pods
-
Execute o comando a seguir. Substitua
cluster-namepelo nome do seu cluster do Amazon EKS eaccount-idpelo ID da sua conta da AWS.aws eks create-pod-identity-association \ --cluster-namecluster-name\ --namespace amazon-cloudwatch \ --service-account cloudwatch-agent \ --role-arn arn:aws:iam::account-id:role/EKS-CloudWatch-Agent-Role
Etapa 3: instale o complemento Amazon CloudWatch Observability
Instale o complemento amazon-cloudwatch-observability no cluster.
Para instalar o complemento
-
Execute o comando a seguir. Substitua
cluster-namepelo nome do cluster do Amazon EKS.aws eks create-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --addon-versionv5.x.x-eksbuild.xSubstitua
v5.x.x-eksbuild.xpela versão v5.x mais recente disponível. Instalar sem--addon-versioninstala a versão mais recente (v6.2.0+), que ativa o pipeline OTel em vez do Classic.
Etapa 4: verifique o status do complemento
Confirme se o complemento foi instalado com sucesso.
Para verificar o status do complemento
-
Execute o comando a seguir. Substitua
cluster-namepelo nome do cluster do Amazon EKS.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output textA saída esperada é
ACTIVE.
Etapa 5: confirme se os pods do atendente estão em execução
Verifique se os pods do atendente do CloudWatch estão em execução no namespace amazon-cloudwatch.
Para confirmar se os pods do atendente estão em execução
-
Execute o comando a seguir.
kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agentTodos os pods de atendentes devem mostrar o status
Running.
Verificar os dados no CloudWatch
Depois de concluir a configuração, os dados do Container Insights aparecem no CloudWatch em 3 a 5 minutos.
Para verificar os dados do Container Insights
-
Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, selecione Container Insights.
-
Verifique se métricas tais como
node_cpu_utilizationepod_memory_utilizationaparecem em seu cluster.
Solução de problemas
Use as orientações a seguir para resolver problemas comuns ao instalar o Enhanced Container Insights (Classic) no Amazon EKS.
O status do complemento mostra CREATE_FAILED ou DEGRADED
Sintoma: quando você executa aws eks
describe-addon, o status mostra CREATE_FAILED ou DEGRADED.
Causa: a instalação do complemento falhou devido a permissões insuficientes do IAM ou à falta de uma associação da Identidade de Pods.
Solução: para resolver esse problema, siga as seguintes etapas:
-
Use o comando a seguir para verificar as informações detalhadas do erro. Substitua
cluster-namepelo nome do seu cluster.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.health" -
Verifique se o perfil do IAM existe e tem a
CloudWatchAgentServerPolicyanexada. -
Verifique se a associação da Identidade de Pods tem como alvo o namespace (
amazon-cloudwatch) e a conta de serviço (cloudwatch-agent) corretos. -
Exclua o complemento com falha e reinstale-o depois de resolver o problema.
aws eks delete-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability
As métricas não aparecem no CloudWatch após 5 minutos
Sintoma: os pods do atendente mostram o status Running, mas nenhuma métrica aparece no CloudWatch após 5 minutos.
Causa: o atendente não consegue enviar dados para o CloudWatch devido a restrições de rede ou permissões incorretas do IAM.
Solução: para resolver esse problema, siga as seguintes etapas:
-
Verifique se os grupos de segurança do VPC e as ACLs de rede permitem o tráfego de saída de HTTPS (porta 443) para endpoints do CloudWatch.
-
Verifique os logs do atendente em busca de erros de permissão ou tempos limite de conexão.
kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied" -
Verifique se o perfil do IAM tem a política
CloudWatchAgentServerPolicyanexada e se a política de confiança permitepods.eks.amazonaws.com.
Pods de atendentes bloqueados em Pending ou CrashLoopBackOff
Sintoma: quando você executa kubectl get pods -n
amazon-cloudwatch, um ou mais pods mostram o status Pending ou CrashLoopBackOff.
Causa: os pods do atendente não podem ser iniciados devido à insuficiência de recursos do nó, falhas na extração de imagens ou à falta de permissões.
Solução: para resolver esse problema, siga as seguintes etapas:
-
Verifique os eventos do pod para obter mensagens de erro detalhadas.
kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent -
Verifique se seus nós têm CPU e memória suficientes disponíveis para os pods de atendentes.
-
Verifique se o complemento do atendente de Identidade de Pods EKS está instalado e em execução.
kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent
Próximas etapas
Tudo pronto para o upgrade? Para obter instruções passo a passo sobre como migrar do Enhanced Container Insights (Classic) para o OTel Container Insights, consulte Migre do Enhanced Container Insights (Classic) para o OTel Container Insights.