Wie behebe ich Probleme mit Container Insights für meine Amazon-EKS-Cluster?
Wenn ich Amazon CloudWatch Container Insights für meine Cluster des Amazon Elastic Kubernetes Service (Amazon EKS) konfiguriere, treten Probleme auf.
Behebung
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
Überprüfe deine Container-Insights-Installation
Um festzustellen, ob du Container Insights ordnungsgemäß auf deinem Amazon-EKS-Cluster installiert hast, führe folgenden Befehl aus:
kubectl get pods -n amazon-cloudwatch
Führe danach den folgenden Befehl für deinen Pod aus:
kubectl describe pod pod-name -n amazon-cloudwatch
Hinweis: Ersetze pod-name durch den Pod-Namen.
Überprüfe den Abschnitt Ereignisse der Befehlsausgabe.
Führe den folgenden Befehl aus, um dein CloudWatch-Protokoll zu überprüfen:
kubectl logs pod-name -n amazon-cloudwatch
Installiere CloudWatch Observability als ein von Amazon EKS verwaltetes Add-on
Verwende das Amazon-EKS-Add-on, um Container Insights mit verbesserter Beobachtbarkeit für Amazon EKS zu installieren.
Hinweis: Du kannst das CloudWatch-Observability-EKS-Add-on auf Amazon-EKS-Clustern verwenden, auf denen nur Kubernetes Version 1.23 oder später ausgeführt wird.
Führe die folgenden Schritte durch, um CloudWatch Observability als selbstverwaltetes Add-on zu installieren:
-
Führe den folgenden Befehl aus, um cert-manager zu installieren:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml -
Führe den folgenden Befehl aus, um die benutzerdefinierten Ressourcendefinitionen (CRD) zu installieren:
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/main/k8s-quickstart/cwagent-custom-resource-definitions.yaml | kubectl apply --server-side -f - -
Führe den folgenden Befehl aus, um den CloudWatch-Container-Agent-Operator zu installieren:
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 -
Behebe Fehler bei Metriken, die nicht in der AWS-Managementkonsole angezeigt werden
Wenn in der AWS-Managementkonsole keine Container-Insights-Metriken angezeigt werden, bestätige, dass du die Einrichtung von Container Insights abgeschlossen hast.
Container-Insights-Fehler beheben
Nicht autorisierte Panik: Cadvisor-Daten können nicht vom Kubelet abgerufen werden
Um dieses Problem zu beheben, stelle sicher, dass du den Webhook-Autorisierungsmodus in deinem Kubelet aktiviert hast.
Fehler ungültiger Endpunkt
Beispiel für eine Fehlermeldung:
"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",
Um dieses Problem zu beheben, achte darauf, alle Platzhalterwerte in deinen Befehlen zu ersetzen. Vergewissere dich beispielsweise, dass die Angaben, die du für cluster-name und region-name verwendest, mit deiner Bereitstellung übereinstimmen, wenn du die AWS CLI ausführst.
Pod-Metriken fehlen auf Amazon EKS oder Kubernetes nach einem Cluster-Upgrade
Beispiel für eine Fehlermeldung:
"W! No pod metric collected"
Wenn nach dem Upgrade deines Clusters keine Pod-Metriken angezeigt werden, überprüfe, ob die Container-Laufzeit auf dem Knoten wie erwartet funktioniert.
Um dieses Problem zu beheben, aktualisiere dein Bereitstellungsmanifest, um den Containerd-Socket vom Host in den Container einzubinden.
Beispiel für ein Bereitstellungsmanifest:
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
Ein vollständiges Beispiel des Manifests findest du unter cwagent-daemonset.yaml auf der GitHub-Website.
Keine Pod-Metriken bei der Verwendung von Bottlerocket für Amazon EKS
Beispiel für eine Fehlermeldung:
"W! No pod metric collected"
Bottlerocket verwendet einen anderen Containerd-Pfad auf dem Host. Wenn du Bottlerocket verwendest, musst du alle Volumes auf den Pfad des Bottlerocket-Containers ändern.
Beispielbefehl:
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
Unerwarteter Anstieg des Protokollvolumens durch den CloudWatch-Agenten beim Erfassen von Prometheus-Metriken
Um dieses Problem zu beheben, aktualisiere den CloudWatch-Agenten auf die neueste verfügbare Version. Um deine aktuelle Version herauszufinden, siehe Informationen über die Versionen der CloudWatch-Agenten finden. Um die neueste Version zu installieren, siehe CloudWatch-Agenten installieren.
CrashLoopBackOff-Fehler beim CloudWatch-Agenten
Um dieses Problem zu lösen, achte darauf, dass du deine AWS-Identity-and-Access-Management(IAM)-Berechtigungen richtig konfiguriert hast.
CloudWatch-Agent/Fluentd-Pod steckt im Status „Ausstehend“ fest
Dein Pod steckt möglicherweise im Status Ausstehend fest. Oder dir wird die Fehlermeldung FailedScheduling von deinem CloudWatch-Agenten oder den Fluentd-Pods angezeigt. Um dieses Problem zu beheben, stelle sicher, dass deine Knoten über genügend Rechenleistung verfügen, basierend auf der Codemenge und dem RAM, die die Agenten benötigen.
Führe den folgenden Befehl aus, um die Pods zu beschreiben:
kubectl describe pod cloudwatch-agent-85ppg -n amazon-cloudwatch
Configmap für Fluent Bit wurde nicht korrekt bereitgestellt
Um dieses Problem zu beheben, achte darauf, dass du die fluent-bit-config-Configmap im amazon-cloudwatch-Namespace ordnungsgemäß bereitgestellt hast.
Beispiel für Fehlermeldungen:
[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
- Themen
- Containers
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 10 Monaten
AWS OFFICIALAktualisiert vor 8 Monaten