Come posso risolvere i problemi di Container Insights per i miei cluster Amazon EKS?
Riscontro problemi durante la configurazione di Amazon CloudWatch Container Insights per i miei cluster Amazon Elastic Kubernetes Service (Amazon EKS).
Risoluzione
Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Controlla l'installazione di Container Insights
Per verificare se hai installato correttamente Container Insights sul cluster Amazon EKS, esegui questo comando:
kubectl get pods -n amazon-cloudwatch
Quindi esegui questo comando per il pod:
kubectl describe pod pod-name -n amazon-cloudwatch
Nota: sostituisci pod-name con il nome del tuo pod.
Controlla la sezione Eventi dell'output del comando.
Per controllare i log di CloudWatch, esegui questo comando:
kubectl logs pod-name -n amazon-cloudwatch
Installa CloudWatch Observability come componente aggiuntivo gestito da Amazon EKS
Utilizza il componente aggiuntivo di Amazon EKS per installare Container Insights con osservabilità migliorata per Amazon EKS.
Nota: puoi utilizzare il componente aggiuntivo CloudWatch Observability EKS solamente su cluster Amazon EKS che eseguono Kubernetes versione 1.23 o successiva.
Per installare CloudWatch Observability come componente aggiuntivo autogestito, completa i seguenti passaggi:
-
Per installare cert-manager, esegui questo comando:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml -
Per installare le definizioni delle risorse personalizzate (CRD), esegui questo 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 - -
Per installare l'operatore dell'agente container CloudWatch, esegui questo 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 -
Risolvi i problemi relativi alle metriche che non appaiono nella Console di gestione AWS
Se non vedi le metriche di Container Insights nella Console di gestione AWS, verifica di aver completato la configurazione di Container Insights.
Risolvi gli errori di Container Insights
Panic non autorizzato: impossibile recuperare i dati di cadvisor da kubelet
Per risolvere l'errore, assicurati di attivare la modalità di autorizzazione Webhook nel kubelet.
Errore di endpoint non valido
Esempio di messaggio di errore:
"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",
Per risolvere l'errore, assicurati di sostituire tutti i valori segnaposto nei comandi. Ad esempio, verifica che le informazioni utilizzate per cluster-name e region-name siano corrette per la tua distribuzione quando esegui AWS CLI.
Metriche del pod mancanti su Amazon EKS o Kubernetes dopo l'aggiornamento del cluster
Esempio di messaggio di errore:
"W! No pod metric collected"
Se mancano le metriche del pod dopo l'aggiornamento del cluster, controlla che il runtime del container sul nodo funzioni come previsto.
Per risolvere l'errore, aggiorna il manifesto di distribuzione per montare il socket containerd dall'host nel container.
Esempio di manifesto di distribuzione:
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
Per un esempio completo del manifesto, consulta cwagent-daemonset.yaml sul sito web di GitHub.
Nessuna metrica del pod utilizzando Bottlerocket per Amazon EKS
Esempio di messaggio di errore:
"W! No pod metric collected"
Bottlerocket utilizza un percorso containerd diverso sull'host. Se utilizzi Bottlerocket, devi modificare tutti i volumi specificando la posizione del percorso del container Bottlerocket.
Esempio di 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 imprevisto del volume di log riscontrato per l'agente CloudWatch con la raccolta delle metriche Prometheus
Per risolvere l'errore, aggiorna l'agente CloudWatch all'ultima versione disponibile. Per trovare la versione corrente, consulta Ricerca di informazioni sulle versioni degli agenti CloudWatch. Per installare la versione più recente, consulta Installa l'agente CloudWatch.
Errore CrashLoopBackOff sull'agente CloudWatch
Per risolvere l'errore, assicurati di aver configurato correttamente le autorizzazioni AWS Identity and Access Management (IAM).
Agente CloudWatch o pod Fluentd bloccato nello stato In sospeso
Il pod potrebbe essere bloccato nello stato In sospeso. Potresti avere ricevere un errore FailedScheduling dall'agente CloudWatch o dai pod Fluentd. Per risolvere l'errore, verifica che i nodi abbiano risorse di elaborazione sufficienti in base alla quantità di codice e alla RAM richieste dagli agenti.
Per descrivere i pod, esegui questo comando:
kubectl describe pod cloudwatch-agent-85ppg -n amazon-cloudwatch
Mappa di configurazione per Fluent Bit non distribuita correttamente
Per risolvere l'errore, verifica di aver distribuito correttamente la mappa di configurazione fluent-bit-config nel namespace amazon-cloudwatch.
Esempi di messaggio di errore:
[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
- Argomenti
- Containers
- Lingua
- Italiano

Contenuto pertinente
AWS UFFICIALEAggiornata 8 mesi fa