Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Découvrez comment récupérer les journaux de nœuds pour un nœud géré par Amazon EKS doté de l'agent de surveillance des nœuds.
Prérequis
Vérifiez que vous disposez des éléments suivants :
-
Un cluster Amazon EKS existant avec l'agent de surveillance des nœuds. Pour de plus amples informations, veuillez consulter Activez la réparation automatique des nœuds et étudiez les problèmes de santé des nœuds.
-
L'outil de
kubectl
ligne de commande installé et configuré pour communiquer avec votre cluster. -
La AWS CLI s'est installée et s'est connectée avec des autorisations suffisantes pour créer des compartiments et des objets S3.
-
Une version récente de Python 3 installée
-
Le AWS SDK pour Python 3, Boto 3, est installé.
Étape 1 : créer une destination de compartiment S3 (facultatif)
Si vous ne possédez pas encore de compartiment S3 pour stocker les journaux, créez-en un. Utilisez la commande AWS CLI suivante. Le bucket utilise par défaut la liste de contrôle private
d'accès. bucket-name
Remplacez-le par le nom de compartiment unique que vous avez choisi.
aws s3api create-bucket --bucket
bucket-name
Étape 2 : Création d'une URL S3 pré-signée pour HTTP Put
Amazon EKS renvoie les journaux des nœuds en effectuant une opération HTTP PUT sur une URL que vous spécifiez. Dans ce didacticiel, nous allons générer une URL HTTP PUT S3 pré-signée.
Les journaux seront renvoyés sous forme d'archive gzip, avec l'.tar.gz
extension.
Note
Vous devez utiliser l' AWS API ou un SDK pour créer l'URL de téléchargement S3 pré-signée afin qu'EKS télécharge le fichier journal. Vous ne pouvez pas créer d'URL de téléchargement S3 pré-signée à l'aide de la AWS CLI.
-
Déterminez l'endroit du compartiment dans lequel vous souhaitez stocker les journaux. Par exemple, vous pouvez utiliser
2024-11-12/logs1.tar.gz
comme clé. -
Enregistrez le code Python suivant dans le fichier
presign-upload.py
. Remplacez<bucket-name>
et<key>
. La clé doit se terminer par.tar.gz
.import boto3; print(boto3.client('s3').generate_presigned_url( ClientMethod='put_object', Params={'Bucket': '<bucket-name>', 'Key': '<key>'}, ExpiresIn=1000 ))
-
Exécutez le script avec
python presign-upload.py
-
Notez la sortie de l'URL. Utilisez cette valeur à l'étape suivante en tant que
http-put-destination
.
Pour plus d'informations, consultez Générer une URL présignée pour télécharger un fichier
Étape 3 : Création d'une NodeDiagnostic ressource
Identifiez le nom du nœud à partir duquel vous souhaitez collecter les journaux.
Créez un NodeDiagnostic
manifeste qui utilise le nom du nœud comme nom de la ressource et fournissant une destination URL HTTP PUT.
apiVersion: eks.amazonaws.com/v1alpha1 kind: NodeDiagnostic metadata: name:
node-name
spec: logCapture: destination:http-put-destination
Appliquez le fichier manifeste à votre cluster.
kubectl apply -f nodediagnostic.yaml
Vous pouvez vérifier l'état de la collection en décrivant la NodeDiagnostic
ressource :
-
Le statut
Success
ouSuccessWithErrors
indique que la tâche est terminée et que les journaux ont été téléchargés vers la destination indiquée (SuccessWithErrors
indique que certains journaux sont peut-être manquants) -
Si le statut est Échec, vérifiez que l'URL de téléchargement est bien formée et qu'elle n'a pas expiré.
kubectl describe nodediagnostics.eks.amazonaws.com/
node-name
Étape 4 : télécharger les journaux depuis S3
Patientez environ une minute avant de tenter de télécharger les journaux. Utilisez ensuite la CLI S3 pour télécharger les journaux.
# Once NodeDiagnostic shows Success status, download the logs
aws s3 cp s3://bucket-name
/key
./node-logs.tar.gz
Étape 5 : Nettoyer les NodeDiagnostic ressources
-
NodeDiagnostic
les ressources ne sont pas automatiquement supprimées. Vous devez les nettoyer vous-même une fois que vous aurez obtenu vos artefacts de journal.
# Delete the NodeDiagnostic resource
kubectl delete nodediagnostics.eks.amazonaws.com/node-name