View a markdown version of this page

Avvio rapido: Otel Container Insights su Amazon EKS - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio rapido: Otel Container Insights su Amazon EKS

Questa guida illustra come abilitare OTel Container Insights su un cluster Amazon EKS esistente. Al termine di questa procedura, il cluster invia i parametri dell'infrastruttura e i log dei container ad Amazon CloudWatch con Enhanced Observability abilitata.

Puoi abilitare OTel Container Insights in due modi: utilizzando il Console di gestione AWS (più veloce) o utilizzando il. AWS CLI Entrambi gli approcci installano lo stesso componente aggiuntivo amazon-cloudwatch-observability EKS con la configurazione di Otel Container Insights. Non è necessaria l'implementazione manuale degli agenti, i grafici Helm o le pipeline di raccolta personalizzate. L'intero processo richiede meno di 5 minuti.

Prerequisiti

Prima di abilitare Otel Container Insights, verificate di soddisfare i seguenti requisiti.

  • Un cluster Amazon EKS esistente che esegue Kubernetes versione 1.28 o successiva

  • Versione della piattaforma o successiva eks.1

  • Versione 6.2.0 o successiva del componente aggiuntivo amazon-cloudwatch-observability

  • AWS CLI versione 2.15.0 o successiva (per la configurazione) CLI-based

  • kubectlconfigurato per comunicare con il cluster di destinazione

  • Autorizzazioni IAM: eks:CreateAddoneks:DescribeAddon, e iam:CreateServiceLinkedRole

  • Il componente aggiuntivo EKS Pod Identity Agent installato sul cluster o IAM Roles for Service Accounts (IRSA) configurato

  • Accesso a Internet in uscita dal cluster agli endpoint CloudWatch

Abilita OTel Container Insights (console)

Console di gestione AWS Fornisce il percorso più veloce per abilitare Otel Container Insights.

Per abilitare OTel Container Insights utilizzando la console
  1. Apri la Console Amazon EKS su https://console.aws.amazon.com/eks/.

  2. Scegli Clusters, quindi scegli il nome del cluster.

  3. Scegli la scheda Osservabilità.

  4. Scegli Enable Container Insights e segui le istruzioni sullo schermo.

Per una guida dettagliata sulla console, consulta. Abilita OTel Container Insights dalla console

Abilitare Otel Container Insights (AWS CLI)

Utilizza i seguenti passaggi per abilitare OTel Container Insights utilizzando il AWS CLI.

Fase 1: creazione di un ruolo IAM per

Crea un ruolo IAM che consenta al componente aggiuntivo CloudWatch Observability di inviare dati a. CloudWatch

Per creare il ruolo IAM del componente CloudWatch aggiuntivo Observability
  1. Esegui il comando seguente per creare il ruolo con una politica di fiducia per EKS Pod Identity.

    aws iam create-role \ --role-name EKS-CloudWatch-Observability-Role \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "pods.eks.amazonaws.com" }, "Action": ["sts:AssumeRole", "sts:TagSession"] }] }'
  2. Collegare la policy gestita CloudWatchAgentServerPolicy al ruolo.

    aws iam attach-role-policy \ --role-name EKS-CloudWatch-Observability-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Fase 2: Creare l'associazione Pod Identity

Associa il ruolo IAM all'account del servizio CloudWatch agente nel cluster.

Per creare l'associazione Pod Identity
  • Eseguire il seguente comando seguente. Sostituiscilo cluster-name con il nome del tuo cluster Amazon EKS e account-id con l'ID AWS del tuo account.

    aws eks create-pod-identity-association \ --cluster-name cluster-name \ --namespace amazon-cloudwatch \ --service-account cloudwatch-agent \ --role-arn arn:aws:iam::account-id:role/EKS-CloudWatch-Observability-Role

Passaggio 3: installa il componente aggiuntivo Amazon CloudWatch Observability

Installa il amazon-cloudwatch-observability componente aggiuntivo con Otel Container Insights abilitato.

Per installare il componente aggiuntivo
  • Eseguire il seguente comando seguente. Sostituisci cluster-name con il nome del tuo cluster Amazon EKS.

    aws eks create-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"otelContainerInsights":{"enabled":true}}'
    Importante

    La otelContainerInsights.enabled configurazione è obbligatoria. OTel Container Insights non è abilitato per impostazione predefinita.

Fase 4: Verificare lo stato del componente aggiuntivo

Verifica che il componente aggiuntivo sia stato installato correttamente.

Per verificare lo stato del componente aggiuntivo
  • Eseguire il seguente comando seguente. Sostituisci cluster-name con il nome del tuo cluster Amazon EKS.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text

    L'output previsto èACTIVE.

Fase 5: Conferma che i pod degli agenti siano in funzione

Verificate che i pod degli CloudWatch agenti siano in esecuzione nello spazio dei amazon-cloudwatch nomi.

Per confermare che i pod degli agenti sono in esecuzione
  • Eseguire il seguente comando seguente.

    kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent

    Tutti i pod degli agenti devono mostrare lo Running stato.

Verifica i dati in CloudWatch

Dopo aver completato la configurazione, i dati di Container Insights vengono visualizzati CloudWatch entro 3-5 minuti.

Controlla le metriche

Per controllare le metriche in CloudWatch
  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Nel riquadro di navigazione, scegli Query Studio.

  3. Cerca metriche, ad esempio container_cpu_usage_seconds_total utilizzando ProMQL.

Controlla i log di

Per verificare che esistano gruppi di log per il cluster, esegui il comando seguente. Sostituisci cluster-name con il nome del tuo cluster Amazon EKS.

aws logs describe-log-groups \ --log-group-name-prefix "/aws/containerinsights/cluster-name" \ --query "logGroups[].logGroupName" \ --output table

Tempo di trasmissione dei dati previsto

La tabella seguente mostra la latenza prevista per ogni tipo di segnale dopo l'attivazione di Otel Container Insights.

Signal Latenza prevista
Metriche dell'infrastruttura 2—3 minuti
Registri di container 2—3 minuti
Eventi del registro delle prestazioni 3-5 minuti

Risoluzione dei problemi

Utilizza le seguenti linee guida per risolvere i problemi più comuni quando abiliti Otel Container Insights su Amazon EKS.

Add-on lo stato mostra CREATE_FAILED o DEGRADED

Sintomo: quando corriaws eks describe-addon, lo stato mostra o. CREATE_FAILED DEGRADED

Causa: l'installazione del componente aggiuntivo non è riuscita, in genere a causa di autorizzazioni IAM insufficienti o di un'associazione Pod Identity mancante.

Soluzione: completa i seguenti passaggi per risolvere il problema.

  1. Esegui il comando seguente per verificare le informazioni dettagliate sull'errore. Sostituisci cluster-name con il nome del cluster.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.health"
  2. Verifica che il ruolo IAM esista e che sia CloudWatchAgentServerPolicy collegato.

  3. Verifica che l'associazione Pod Identity abbia come target lo spazio dei nomi (amazon-cloudwatch) e l'account di servizio () corretti. cloudwatch-agent

  4. Eliminate il componente aggiuntivo non funzionante e reinstallatelo dopo aver risolto il problema.

    aws eks delete-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability

I pod degli agenti sono nello stato o In sospeso CrashLoopBackOff

Sintomo: quando corrikubectl get pods -n amazon-cloudwatch, uno o più pod vengono visualizzati CrashLoopBackOff o hanno lo stato. Pending

Causa: i pod degli agenti non possono essere avviati a causa di risorse di nodo insufficienti, autorizzazioni mancanti o problemi di connettività di rete.

Soluzione: completa i seguenti passaggi per risolvere il problema.

  1. Controlla gli eventi del pod per i messaggi di errore dettagliati.

    kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
  2. Controlla i registri del contenitore dell'agente per eventuali errori di avvio.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=50
  3. Verifica che i nodi abbiano CPU e memoria sufficienti per i pod degli agenti.

  4. Verifica che il componente aggiuntivo EKS Pod Identity Agent sia installato e in esecuzione.

    kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent

Le metriche non vengono visualizzate dopo 5 minuti CloudWatch

Sintomo: i pod degli agenti mostrano Running lo stato, ma dopo 5 minuti non viene visualizzata alcuna metrica. CloudWatch

Causa: l'agente non può inviare dati a CloudWatch, in genere a causa di restrizioni di rete o autorizzazioni IAM errate.

Soluzione: completa i seguenti passaggi per risolvere il problema.

  1. Verificate che i pod degli agenti possano raggiungere gli CloudWatch endpoint. Verifica che i gruppi di sicurezza VPC e gli ACL di rete consentano il traffico HTTPS in uscita (porta 443) verso gli endpoint. CloudWatch

  2. Controlla i log degli agenti per eventuali errori di autorizzazione o timeout di connessione.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied"
  3. Verifica che al ruolo IAM sia associata la CloudWatchAgentServerPolicy policy e che la policy di trust lo consenta. pods.eks.amazonaws.com

  4. Se utilizzi un endpoint VPC per CloudWatch, conferma che la policy dell'endpoint consenta le azioni richieste.