Hilf mit, diese Seite zu verbessern
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.
Wenn Sie zu diesem Benutzerhandbuch beitragen möchten, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.
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.
Erfahren Sie, wie Sie Knotenprotokolle für einen von Amazon EKS verwalteten Knoten abrufen, der über den Knotenüberwachungsagenten verfügt.
Voraussetzungen
Stellen Sie sicher, dass Sie über Folgendes verfügen:
-
Ein vorhandener Amazon EKS-Cluster mit dem Knotenüberwachungsagenten. Weitere Informationen finden Sie unter Aktivieren Sie die auto Knotenreparatur und untersuchen Sie Probleme mit dem Knotenstatus.
-
Das
kubectl
Befehlszeilentool wurde für die Kommunikation mit Ihrem Cluster installiert und konfiguriert. -
Die AWS CLI wurde installiert und hat sich mit ausreichenden Berechtigungen angemeldet, um S3-Buckets und -Objekte zu erstellen.
-
Eine aktuelle Version von Python 3 ist installiert
-
Das AWS SDK für Python 3, Boto 3, ist installiert.
Schritt 1: S3-Bucket-Ziel erstellen (optional)
Wenn Sie noch keinen S3-Bucket zum Speichern der Protokolle haben, erstellen Sie einen. Verwenden Sie den folgenden AWS CLI-Befehl. Der Bucket verwendet standardmäßig die private
Zugriffskontrollliste. Ersetzen Sie es durch bucket-name
den von Ihnen gewählten eindeutigen Bucket-Namen.
aws s3api create-bucket --bucket
bucket-name
Schritt 2: Erstellen Sie eine vorsignierte S3-URL für HTTP Put
Amazon EKS gibt die Knotenprotokolle zurück, indem es einen HTTP-PUT-Vorgang an eine von Ihnen angegebene URL ausführt. In diesem Tutorial werden wir eine vorsignierte S3-HTTP-PUT-URL generieren.
Die Protokolle werden als Gzip-Tarball mit der Erweiterung zurückgegeben. .tar.gz
Anmerkung
Sie müssen die AWS API oder ein SDK verwenden, um die vorsignierte S3-Upload-URL zu erstellen, damit EKS die Protokolldatei hochladen kann. Sie können mit der AWS CLI keine vorsignierte S3-Upload-URL erstellen.
-
Ermitteln Sie, wo im Bucket Sie die Protokolle speichern möchten. Sie könnten es beispielsweise
2024-11-12/logs1.tar.gz
als Schlüssel verwenden. -
Speichern Sie den folgenden Python-Code in der Datei
presign-upload.py
. Ersetze<bucket-name>
und<key>
. Der Schlüssel sollte enden mit.tar.gz
.import boto3; print(boto3.client('s3').generate_presigned_url( ClientMethod='put_object', Params={'Bucket': '<bucket-name>', 'Key': '<key>'}, ExpiresIn=1000 ))
-
Führen Sie das Skript mit aus
python presign-upload.py
-
Notieren Sie sich die URL-Ausgabe. Verwenden Sie diesen Wert im nächsten Schritt als
http-put-destination
.
Weitere Informationen finden Sie unter Generieren einer vorsignierten URL zum Hochladen einer Datei
Schritt 3: Ressource erstellen NodeDiagnostic
Identifizieren Sie den Namen des Knotens, von dem Sie Protokolle sammeln möchten.
Erstellen Sie ein NodeDiagnostic
Manifest, das den Namen des Knotens als Namen der Ressource verwendet und ein HTTP-PUT-URL-Ziel bereitstellt.
apiVersion: eks.amazonaws.com/v1alpha1 kind: NodeDiagnostic metadata: name:
node-name
spec: logCapture: destination:http-put-destination
Wenden Sie die Manifestdatei auf Ihren Cluster an.
kubectl apply -f nodediagnostic.yaml
Sie können den Status der Sammlung überprüfen, indem Sie die NodeDiagnostic
Ressource beschreiben:
-
Der Status
Success
oderSuccessWithErrors
gibt an, dass die Aufgabe abgeschlossen und die Protokolle an das angegebene Ziel hochgeladen wurden (SuccessWithErrors
weist darauf hin, dass einige Protokolle möglicherweise fehlen) -
Wenn der Status Fehlgeschlagen lautet, vergewissern Sie sich, dass die Upload-URL korrekt formatiert und nicht abgelaufen ist.
kubectl describe nodediagnostics.eks.amazonaws.com/
node-name
Schritt 4: Laden Sie die Protokolle von S3 herunter
Warten Sie etwa eine Minute, bevor Sie versuchen, die Protokolle herunterzuladen. Verwenden Sie dann die S3-CLI, um die Protokolle herunterzuladen.
# Once NodeDiagnostic shows Success status, download the logs
aws s3 cp s3://bucket-name
/key
./node-logs.tar.gz
Schritt 5: NodeDiagnostic Ressource bereinigen
-
NodeDiagnostic
Ressourcen werden nicht automatisch gelöscht. Sie sollten diese selbst bereinigen, nachdem Sie Ihre Log-Artefakte erhalten haben
# Delete the NodeDiagnostic resource
kubectl delete nodediagnostics.eks.amazonaws.com/node-name