Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Como soluciono problemas do Container Insights para meus clusters do Amazon EKS?
Encontro problemas ao configurar o Amazon CloudWatch Container Insights para meus clusters do Amazon Elastic Kubernetes Service (Amazon EKS).
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Verifique sua instalação do Container Insights
Para verificar se você instalou corretamente o Container Insights em seu cluster Amazon EKS, execute o seguinte comando:
kubectl get pods -n amazon-cloudwatch
Em seguida, execute o seguinte comando para seu pod:
kubectl describe pod pod-name -n amazon-cloudwatch
Observação: substitua o pod-name pelo nome do pod.
Verifique a seção Eventos da saída do comando.
Para verificar seus logs do CloudWatch, execute o seguinte comando:
kubectl logs pod-name -n amazon-cloudwatch
Instale o CloudWatch Observability como um complemento gerenciado pelo Amazon EKS
Use o complemento Amazon EKS para instalar o Container Insights com observabilidade aprimorada para o Amazon EKS.
Observação: é possível usar o complemento CloudWatch Observability EKS em clusters do Amazon EKS que executam somente o Kubernetes versão 1.23 ou posterior.
Para instalar o CloudWatch Observability como um complemento autogerenciado, conclua as seguintes etapas:
-
Para instalar o cert-manager, execute o seguinte comando:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml
-
Para instalar as definições de recursos personalizados (CRD), execute o seguinte comando:
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl apply --server-side -f -
-
Para instalar o operador do agente de contêiner do CloudWatch, execute o seguinte comando:
ClusterName=my-cluster-name RegionName=my-cluster-region curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-operator-rendered.yaml | sed 's/{{cluster_name}}/'${ClusterName}'/g;s/{{region_name}}/'${RegionName}'/g' | kubectl apply -f -
Solucione problemas de métricas que não aparecem no Console de Gerenciamento da AWS
Se você não vê as métricas do Container Insights no Console de Gerenciamento da AWS, confirme que concluiu a configuração do Container Insights.
Solucionar erros do Container Insights
Unauthorized panic: Cannot retrieve cadvisor data from kubelet
Para resolver esse problema, certifique-se de ativar o modo de autorização Webhook em seu kubelet.
Invalid endpoint error
Exemplo de mensagem de erro:
“log”: “2020-04-02T08:36:16Z E! cloudwatchlogs: code: InvalidEndpointURL, message: invalid endpoint uri, original error: &url.Error{Op:\"parse\", URL:\"https://logs.{{region_name}}.amazonaws.com/\", Err:\"{\"}, &awserr.baseError{code:\"InvalidEndpointURL\", message:\"invalid endpoint uri\", errs:[]error{(*url.Error)(0xc0008723c0)}}\n",
Para resolver esse problema, certifique-se de substituir todos os valores de espaço reservado em seus comandos. Por exemplo, confirme se as informações que você usa para cluster-name e region-name estão corretas para sua implantação ao executar a AWS CLI.
Métricas de pod ausentes no Amazon EKS ou no Kubernetes após a atualização do cluster
Exemplo de mensagem de erro:
“W! No pod metric collected”
Se as métricas do pod estiverem ausentes após a atualização do cluster, verifique se o runtime do contêiner no nó está funcionando conforme o esperado.
Para resolver esse problema, atualize seu manifesto de implantação para montar o soquete containerd do host no contêiner.
Exemplo de manifesto de implantação:
apiVersion: apps/v1 kind: DaemonSet metadata: name: cloudwatch-agent namespace: amazon-cloudwatch spec: template: spec: containers: - name: cloudwatch-agent # ... # Don't change the mountPath volumeMounts: # ... - name: dockersock mountPath: /var/run/docker.sock readOnly: true - name: varlibdocker mountPath: /var/lib/docker readOnly: true - name: containerdsock # NEW mount mountPath: /run/containerd/containerd.sock readOnly: true # ... volumes: # ... - name: dockersock hostPath: path: /var/run/docker.sock - name: varlibdocker hostPath: path: /var/lib/docker - name: containerdsock # NEW volume hostPath: path: /run/containerd/containerd.sock
Para ver um exemplo completo do manifesto, consulte cwagent-daemonset.yaml no site do GitHub.
Não há métrica de pod ao usar o Bottlerocket para Amazon EKS
Exemplo de mensagem de erro:
“W! No pod metric collected”
O Bottlerocket usa um caminho de contêiner diferente no host. Se você usar o Bottlerocket, deverá alterar todos os volumes para o local do caminho do contêiner Bottlerocket.
Exemplo de comando:
volumes: # ... - name: containerdsock hostPath: # path: /run/containerd/containerd.sock # bottlerocket does not mount containerd sock at normal place # https://github.com/bottlerocket-os/bottlerocket/commit/91810c85b83ff4c3660b496e243ef8b55df0973b path: /run/dockershim.sock
aumento inesperado do volume de logs do agente CloudWatch ao coletar métricas do Prometheus
Para resolver esse problema, atualize o agente do CloudWatch para a versão mais recente disponível. Para encontrar sua versão atual, consulte Como encontrar informações sobre as versões dos agentes do CloudWatch. Para instalar a versão mais recente, consulte Instalar o agente CloudWatch.
Erro CrashLoopBackoff no agente CloudWatch
Para resolver esse problema, certifique-se de ter configurado corretamente suas permissões do AWS Identity and Access Management (AWS IAM).
O agente CloudWatch ou o pod Fluentd estão pendentes
Seu pod pode estar travado no estado Pendente. Ou você recebe um erro FailedScheduling do seu agente do CloudWatch ou dos pods do Fluentd. Para resolver esse problema, confirme se seus nós têm recursos computacionais suficientes com base na quantidade de código e na RAM que os agentes precisam.
Para descrever os pods, execute o seguinte comando:
kubectl describe pod cloudwatch-agent-85ppg -n amazon-cloudwatch
Configmap for fluent bit not deployed correctly
Para resolver esse problema, confirme se você implantou corretamente o mapa de configuração fluent-bit-config no namespace amazon-cloudwatch.
Exemplos de mensagens de erro:
[2024/10/02 11:16:42] [error] [config] inconsistent use of tab and space [2024/10/02 11:16:42] [error] [config] error in /fluent-bit/etc/..2024_10_02_11_16_29.3759745087//application-log.conf:62: invalid indentation level [2024/10/02 11:16:42] [error] configuration file contains errors, aborting.cwagent-daemonset.yaml

Conteúdo relevante
- feita há 2 meseslg...
- Resposta aceitafeita há 3 meseslg...
- feita há 5 meseslg...
- feita há 2 diaslg...
- AWS OFICIALAtualizada há 4 meses