Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schnellstart: oTEL Container Insights auf Amazon EKS
Dieser Leitfaden führt Sie durch die Aktivierung von oTEL Container Insights auf einem vorhandenen Amazon EKS-Cluster. Am Ende dieses Verfahrens sendet Ihr Cluster Infrastrukturmetriken und Container-Logs CloudWatch mit aktivierter Enhanced Observability an Amazon.
Sie können oTEL Container Insights auf zwei Arten aktivieren: mit dem AWS-Managementkonsole (schnellsten) oder mit dem AWS CLI. Bei beiden Ansätzen wird dasselbe amazon-cloudwatch-observability EKS-Add-on mit der OTel Container Insights-Konfiguration installiert. Sie benötigen keine manuelle Agentenbereitstellung, Helm-Diagramme oder benutzerdefinierte Collector-Pipelines. Der gesamte Vorgang dauert weniger als 5 Minuten.
Voraussetzungen
Bevor Sie oTEL Container Insights aktivieren, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen.
-
Ein vorhandener Amazon EKS-Cluster, auf dem Kubernetes Version 1.28 oder höher ausgeführt wird
-
Plattformversion oder höher
eks.1 -
Version 6.2.0 oder höher des Add-ons
amazon-cloudwatch-observability -
AWS CLI Version 2.15.0 oder höher (für die Installation) CLI-based
-
kubectlkonfiguriert für die Kommunikation mit Ihrem Zielcluster -
IAM-Berechtigungen:
eks:CreateAddoneks:DescribeAddon, undiam:CreateServiceLinkedRole -
Das auf Ihrem Cluster installierte EKS Pod Identity Agent-Add-On oder die konfigurierten IAM-Rollen für Dienstkonten (IRSA)
-
Ausgehender Internetzugang vom Cluster zu den Endpunkten CloudWatch
Aktivieren Sie Otel Container Insights (Konsole)
Das AWS-Managementkonsole bietet den schnellsten Weg zur Aktivierung von OTel Container Insights.
Um OTel Container Insights über die Konsole zu aktivieren
-
Öffnen Sie die Amazon-EKS-Konsole unter https://console.aws.amazon.com/eks/
. -
Wählen Sie Clusters und dann Ihren Clusternamen aus.
-
Wählen Sie den Registerkarte Beobachtbarkeit.
-
Wählen Sie „Container Insights aktivieren“ und folgen Sie den Anweisungen auf dem Bildschirm.
Eine ausführliche Anleitung zur Konsole finden Sie unter. Otel Container Insights von der Konsole aus aktivieren
Aktivieren Sie Otel Container Insights (AWS CLI)
Gehen Sie wie folgt vor, um OTel Container Insights zu aktivieren, indem Sie den verwenden AWS CLI.
Schritt 1: Erstellen Sie die IAM-Rolle für das
Erstellen Sie eine IAM-Rolle, an die das CloudWatch Observability-Add-on Daten senden kann. CloudWatch
Um die IAM-Rolle des CloudWatch Observability-Add-ons zu erstellen
-
Führen Sie den folgenden Befehl aus, um die Rolle mit einer Vertrauensrichtlinie für EKS Pod Identity zu erstellen.
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"] }] }' -
Hängen Sie die von
CloudWatchAgentServerPolicyverwaltete Richtlinie an die Rolle an.aws iam attach-role-policy \ --role-name EKS-CloudWatch-Observability-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
Schritt 2: Erstellen Sie die Pod Identity-Zuordnung
Ordnen Sie die IAM-Rolle dem CloudWatch Agent-Dienstkonto in Ihrem Cluster zu.
Um die Pod Identity-Zuordnung zu erstellen
-
Führen Sie den folgenden Befehl aus.
cluster-nameErsetzen Sie es durch den Namen Ihres Amazon EKS-Clusters undaccount-iddurch Ihre AWS Konto-ID.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-Observability-Role
Schritt 3: Installieren Sie das Amazon CloudWatch Observability-Add-on
Installieren Sie das amazon-cloudwatch-observability Add-on mit aktiviertem oTEL Container Insights.
Um das Add-on zu installieren
-
Führen Sie den folgenden Befehl aus.
cluster-nameErsetzen Sie durch den Namen Ihres Amazon EKS-Clusters.aws eks create-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"otelContainerInsights":{"enabled":true}}'Wichtig
Die
otelContainerInsights.enabledKonfiguration ist erforderlich. oTEL Container Insights ist standardmäßig nicht aktiviert.
Schritt 4: Überprüfen Sie den Status des Add-ons
Vergewissern Sie sich, dass das Add-on erfolgreich installiert wurde.
Um den Status des Add-ons zu überprüfen
-
Führen Sie den folgenden Befehl aus.
cluster-nameErsetzen Sie durch den Namen Ihres Amazon EKS-Clusters.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output textDie erwartete Ausgabe ist
ACTIVE.
Schritt 5: Stellen Sie sicher, dass die Agent-Pods ausgeführt werden
Stellen Sie sicher, dass die CloudWatch Agent-Pods im amazon-cloudwatch Namespace ausgeführt werden.
Um zu überprüfen, ob die Agenten-Pods ausgeführt werden
-
Führen Sie den folgenden Befehl aus.
kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agentAlle Agenten-Pods müssen
Runningden Status anzeigen.
Überprüfen Sie die Daten in CloudWatch
Nachdem Sie die Einrichtung abgeschlossen haben, werden die Container Insights-Daten CloudWatch innerhalb von 3 bis 5 Minuten angezeigt.
Überprüfen Sie die Kennzahlen
Um Metriken einzuchecken CloudWatch
-
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsbereich Query Studio aus.
-
Suchen Sie nach Metriken, z. B. mithilfe
container_cpu_usage_seconds_totalvon PromQL.
-Protokolle überprüfen
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Protokollgruppen für Ihren Cluster existieren. cluster-nameErsetzen Sie durch den Namen Ihres Amazon EKS-Clusters.
aws logs describe-log-groups \ --log-group-name-prefix "/aws/containerinsights/cluster-name" \ --query "logGroups[].logGroupName" \ --output table
Erwartete Zeit bis zur Datenaufnahme
Die folgende Tabelle zeigt die erwartete Latenz für jeden Signaltyp, nachdem Sie OTel Container Insights aktiviert haben.
| Signal | Erwartete Latenz |
|---|---|
| Infrastruktur-Metriken | 2—3 Minuten |
| Containerprotokolle | 2—3 Minuten |
| Ereignisse im Leistungsprotokoll | 3—5 Minuten |
Fehlerbehebung
Verwenden Sie die folgenden Anleitungen, um häufig auftretende Probleme zu lösen, wenn Sie oTEL Container Insights auf Amazon EKS aktivieren.
Add-on Der Status zeigt CREATE_FAILED oder DEGRADED
Symptom: Beim Ausführen wird der Status aws eks
describe-addon oder angezeigt. CREATE_FAILED DEGRADED
Ursache: Die Installation des Add-ons ist fehlgeschlagen. Dies ist in der Regel auf unzureichende IAM-Berechtigungen oder eine fehlende Pod Identity-Zuordnung zurückzuführen.
Lösung: Gehen Sie wie folgt vor, um dieses Problem zu beheben.
-
Führen Sie den folgenden Befehl aus, um nach detaillierten Fehlerinformationen zu suchen. Ersetzen Sie
cluster-namemit dem Namen Ihres Clusters.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.health" -
Stellen Sie sicher, dass die IAM-Rolle vorhanden ist und dass sie
CloudWatchAgentServerPolicyangehängt ist. -
Stellen Sie sicher, dass die Pod Identity-Zuordnung auf den richtigen Namespace (
amazon-cloudwatch) und das richtige Dienstkonto (cloudwatch-agent) abzielt. -
Löschen Sie das fehlgeschlagene Add-on und installieren Sie es erneut, nachdem Sie das Problem behoben haben.
aws eks delete-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability
Agent-Pods befinden sich im Status CrashLoopBackOff oder Ausstehend
Symptom: Wenn Sie den Vorgang ausführenkubectl get pods -n
amazon-cloudwatch, wird für einen oder mehrere Pods der Pending Status „CrashLoopBackOffUnser“ angezeigt.
Ursache: Die Agenten-Pods können aufgrund unzureichender Knotenressourcen, fehlender Berechtigungen oder Netzwerkverbindungsproblemen nicht gestartet werden.
Lösung: Gehen Sie wie folgt vor, um dieses Problem zu beheben.
-
Überprüfen Sie die Pod-Ereignisse auf detaillierte Fehlermeldungen.
kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent -
Überprüfen Sie die Agent-Container-Protokolle auf Startfehler.
kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=50 -
Stellen Sie sicher, dass Ihre Knoten über ausreichend CPU und Arbeitsspeicher für die Agenten-Pods verfügen.
-
Stellen Sie sicher, dass das EKS Pod Identity Agent-Add-on installiert ist und ausgeführt wird.
kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent
Metriken werden CloudWatch nach 5 Minuten nicht angezeigt
Symptom: Die Agenten-Pods zeigen Running den Status an, aber CloudWatch nach 5 Minuten werden keine Metriken angezeigt.
Ursache: Der Agent kann keine Daten an senden CloudWatch, was in der Regel auf Netzwerkeinschränkungen oder falsche IAM-Berechtigungen zurückzuführen ist.
Lösung: Gehen Sie wie folgt vor, um dieses Problem zu beheben.
-
Stellen Sie sicher, dass die Agenten-Pods CloudWatch Endpunkte erreichen können. Vergewissern Sie sich, dass Ihre VPC-Sicherheitsgruppen und Netzwerk-ACLs ausgehenden HTTPS-Verkehr (Port 443) zu Endpunkten zulassen. CloudWatch
-
Überprüfen Sie die Agentenprotokolle auf Berechtigungsfehler oder Verbindungstimeouts.
kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied" -
Stellen Sie sicher, dass die IAM-Rolle die
CloudWatchAgentServerPolicyRichtlinie angehängt hat und ob die Vertrauensrichtlinie dies zulässt.pods.eks.amazonaws.com -
Wenn Sie einen VPC-Endpunkt für verwenden, vergewissern Sie sich CloudWatch, dass die Endpunktrichtlinie die erforderlichen Aktionen zulässt.