View a markdown version of this page

Types de connexion dans Amazon EKS - AWS Conseils prescriptifs

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.

Types de connexion dans Amazon EKS

Dans Amazon EKS, la journalisation implique la capture, le stockage et l'analyse de différents types de données de journal générées par les différents composants du cluster Kubernetes, notamment :

Pour gérer efficacement les journaux dans votre environnement Amazon EKS, vous utilisez généralement une combinaison d' Services AWS outils tiers et de meilleures pratiques. Cela peut inclure l'utilisation d'Amazon CloudWatch, Fluent Bit, Elasticsearch, Kibana et d'autres outils de journalisation et d'analyse pour collecter, stocker et visualiser les données des journaux.

Les sections suivantes explorent différents aspects de la journalisation dans Amazon EKS, notamment les meilleures pratiques, les outils et les techniques permettant de mettre en œuvre une stratégie de journalisation complète dans vos clusters Kubernetes sur. AWS

Journaux du système

La journalisation des instances EC2 sous-jacentes ou des nœuds Fargate dans Amazon EKS implique différentes approches en fonction du type de nœud.

Pour implémenter la journalisation pour les instances EC2 dans Amazon EKS, vous pouvez utiliser les outils suivants :

  • CloudWatch agent : installez et configurez l' CloudWatch agent sur vos instances EC2. Configurez-le pour collecter les journaux système tels que /var/log/messages et/var/log/secure. Vous pouvez utiliser des scripts de données utilisateur ou des outils de gestion de configuration pour automatiser ce processus.

  • Fluent Bit : déployez Fluent Bit sous forme DaemonSet de fichier pour collecter les journaux de tous les nœuds. Configurez-le pour transférer les CloudWatch journaux vers Logs ou vers d'autres systèmes de journalisation centralisés.

  • Container Insights : activez Container Insights dans votre cluster EKS pour collecter automatiquement des métriques et des journaux à partir des instances EC2.

  • Scripts personnalisés : développez des scripts personnalisés pour collecter des journaux spécifiques et les envoyer à votre destination de journalisation préférée.

  • Agent SSM : utilisez l' AWS Systems Manager agent (agent SSM) pour collecter et transférer les journaux vers CloudWatch les journaux.

Pour implémenter la journalisation pour les nœuds Fargate dans Amazon EKS, utilisez les outils suivants :

  • Journalisation par Fargate : Fargate collecte et enregistre automatiquement les données provenant de vos conteneurs. stdout stderr Configurez votre profil Fargate pour envoyer ces journaux à Logs. CloudWatch

  • Fluent Bit pour Fargate AWS  : fournit une image Fluent Bit spécialement pour la journalisation de Fargate. Déployez-le sous forme de conteneur latéral dans vos pods Fargate pour collecter et transférer les journaux.

  • Container Insights for Fargate : activez Container Insights pour collecter des métriques et des journaux à partir des nœuds Fargate.

Journaux des composants Kubernetes

La collecte de journaux à partir de composants Kubernetes tels que le serveur d'API, le planificateur et le gestionnaire de contrôleurs dans Amazon EKS nécessite une approche légèrement différente de celle de la journalisation des applications. Ces composants s'exécutent dans le cadre du plan de contrôle Amazon EKS, qui est géré par AWS. Voici comment vous pouvez collecter ces journaux et y accéder :

  • Activer la journalisation du plan de contrôle : vous pouvez activer la journalisation du plan de contrôle pour votre cluster EKS via les outils AWS Management Console, AWS Command Line Interface (AWS CLI) ou infrastructure en tant que code (iAc) tels que AWS CloudFormationTerraform. Lorsque vous activez la journalisation sur le plan de contrôle, les journaux sont envoyés à Amazon CloudWatch Logs. Vous pouvez les consulter dans le groupe de /aws/eks/<cluster-name>/cluster journaux dans la CloudWatch console. Au sein de ce groupe de journaux, chaque composant du plan de contrôle possède son propre flux de journal, comme suit :

    Nom du stream Description
    serveur d'API kube Journaux du serveur d'API Kubernetes
    planificateur Kube Journaux de décisions du planificateur
    kube-controller-manager Journaux du responsable du contrôleur
    authentificateur Journaux de l'authentificateur IAM
    audit Journaux d'audit Kubernetes (doivent être explicitement activés)

    Pour afficher les journaux d'un composant spécifique, accédez au groupe de journaux du cluster et filtrez en fonction du nom du flux de journaux cible.

  • Utiliser CloudWatch Logs Insights : vous pouvez utiliser CloudWatch Logs Insights pour effectuer des requêtes complexes sur vos journaux.

  • Exporter les journaux vers Amazon S3 : pour un stockage à long terme ou une analyse plus approfondie, vous pouvez exporter les journaux vers Amazon Simple Storage Service (Amazon S3).

  • Utiliser des outils tiers : vous pouvez utiliser des outils tels que Fluent Bit pour collecter ces journaux et les transmettre à d'autres systèmes de journalisation tels qu'Elasticsearch ou Splunk.

  • Utilisation AWS CloudTrail : Le AWS CloudTrailservice peut fournir des informations supplémentaires sur les appels d'API effectués vers votre cluster EKS.

Journaux d'exécution du conteneur

La journalisation des journaux d'exécution du conteneur dans Amazon EKS implique la capture et la gestion des journaux à partir du runtime du conteneur, ce qui est généralement le containerd cas pour Amazon EKS. Voici comment vous pouvez aborder la journalisation des journaux d'exécution des conteneurs dans Amazon EKS :

  • Accédez directement aux journaux sur les nœuds Amazon EC2. Pour les nœuds EC2 autogérés, vous pouvez accéder directement aux journaux d'exécution du conteneur sur l'hôte à partir des emplacements suivants :

    • containerdjournaux : /var/log/containers/

    • Logs Docker (si vous utilisez le moteur d'exécution Docker) : /var/log/docker.log

  • Utilisez un DaemonSet pour la collecte de journaux.

  • Déployez un agent de collecte de journaux (tel que Fluent Bit) DaemonSet pour collecter les journaux de tous les nœuds.

  • Configurez l' CloudWatch agent pour collecter les journaux d'exécution du conteneur.

  • Activez Container Insights pour collecter les statistiques et les journaux d'exécution des conteneurs.

  • Utilisez Fargate. Pour les nœuds Fargate, les journaux d'exécution des conteneurs sont automatiquement collectés et sont accessibles via Logs. CloudWatch

  • Implémentez des solutions de journalisation personnalisées à l'aide d'outils tels que Fluent Bit ou Logstash. Configurez des CloudWatchalarmes ou utilisez des outils tels que Prometheus pour détecter des modèles ou des problèmes spécifiques dans les journaux d'exécution des conteneurs. Envisagez d'utiliser des solutions de journalisation tierces qui s'intègrent bien à Kubernetes et Amazon EKS, telles que Datadog, Splunk ou Elastic Stack (ELK Stack). Utilisez des outils d'agrégation de journaux pour collecter des journaux provenant de plusieurs sources et les transférer vers un système de journalisation centralisé.

Journaux d'application

Les journaux d'applications dans Amazon EKS jouent un rôle crucial dans la maintenance et le dépannage de vos applications. Pour implémenter la journalisation des applications dans Amazon EKS, vous pouvez choisir l'une des options suivantes :

  • Écrire les journaux dansstdout/stderr: La manière la plus simple et la plus native de Kubernetes de gérer les journaux d'applications consiste à les écrire dans et. stdout stderr Kubernetes capture automatiquement ces flux.

  • Implémenter l'agrégation des journaux : utilisez un agrégateur de journaux tel que Fluent Bit pour collecter les journaux de tous vos pods.

  • Configurer le routage des journaux : configurez votre agrégateur de journaux pour acheminer les journaux vers la destination souhaitée (telle que CloudWatch Logs ou Elasticsearch).

  • Utilisez CloudWatch Container Insights : activez Container Insights pour une journalisation et une surveillance complètes.