View a markdown version of this page

Démarrage rapide : OTel Container Insights sur Amazon EKS - Amazon CloudWatch

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émarrage rapide : OTel Container Insights sur Amazon EKS

Ce guide explique comment activer OTel Container Insights sur un cluster Amazon EKS existant. À la fin de cette procédure, votre cluster envoie des métriques d'infrastructure et des journaux de conteneurs à Amazon CloudWatch avec l'option Enhanced Observability activée.

Vous pouvez activer OTel Container Insights de deux manières : en utilisant le AWS Management Console (le plus rapide) ou en utilisant le AWS CLI. Les deux approches installent le même module complémentaire amazon-cloudwatch-observability EKS avec la configuration OTel Container Insights. Vous n'avez pas besoin de déploiement manuel d'agents, de diagrammes Helm ou de pipelines de collecteurs personnalisés. L'ensemble du processus prend moins de 5 minutes.

Conditions préalables

Avant d'activer OTel Container Insights, vérifiez que vous répondez aux exigences suivantes.

  • Un cluster Amazon EKS existant exécutant Kubernetes version 1.28 ou ultérieure

  • Version de plateforme eks.1 ou ultérieure

  • Version 6.2.0 ou ultérieure du module complémentaire amazon-cloudwatch-observability

  • AWS CLI version 2.15.0 ou ultérieure (pour CLI-based l'installation)

  • kubectlconfiguré pour communiquer avec votre cluster cible

  • Autorisations IAM : eks:CreateAddoneks:DescribeAddon, et iam:CreateServiceLinkedRole

  • Le module complémentaire EKS Pod Identity Agent installé sur votre cluster ou configuré les rôles IAM pour les comptes de service (IRSA)

  • Accès Internet sortant du cluster vers les points de terminaison CloudWatch

Activer OTel Container Insights (console)

AWS Management Console Il fournit le chemin le plus rapide pour activer OTel Container Insights.

Pour activer OTel Container Insights à l'aide de la console
  1. Ouvrez la console Amazon EKS https://console.aws.amazon.com/eks/.

  2. Choisissez Clusters, puis choisissez le nom de votre cluster.

  3. Sélectionnez l’onglet Observabilité.

  4. Choisissez Enable Container Insights et suivez les instructions affichées à l'écran.

Pour une présentation détaillée de la console, voirActivez OTel Container Insights depuis la console.

Activez OTel Container Insights (AWS CLI)

Procédez comme suit pour activer OTel Container Insights à l'aide du AWS CLI.

Étape 1 : création du rôle IAM

Créez un rôle IAM qui permet au module complémentaire CloudWatch Observability d'envoyer des données à. CloudWatch

Pour créer le rôle IAM du module complémentaire CloudWatch Observability
  1. Exécutez la commande suivante pour créer le rôle avec une politique de confiance pour EKS Pod Identity.

    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"] }] }'
  2. Attachez la stratégie gérée par CloudWatchAgentServerPolicy au rôle.

    aws iam attach-role-policy \ --role-name EKS-CloudWatch-Observability-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy

Étape 2 : Création de l'association Pod Identity

Associez le rôle IAM au compte de service de l' CloudWatch agent de votre cluster.

Pour créer l'association Pod Identity
  • Exécutez la commande suivante. cluster-nameRemplacez-le par le nom de votre cluster Amazon EKS et account-id par votre identifiant de AWS compte.

    aws eks create-pod-identity-association \ --cluster-name cluster-name \ --namespace amazon-cloudwatch \ --service-account cloudwatch-agent \ --role-arn arn:aws:iam::account-id:role/EKS-CloudWatch-Observability-Role

Étape 3 : Installation du module complémentaire Amazon CloudWatch Observability

Installez le amazon-cloudwatch-observability module complémentaire avec OTel Container Insights activé.

Pour installer le module complémentaire
  • Exécutez la commande suivante. cluster-nameRemplacez-le par le nom de votre cluster Amazon EKS.

    aws eks create-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --configuration-values '{"otelContainerInsights":{"enabled":true}}'
    Important

    La otelContainerInsights.enabled configuration est obligatoire. OTel Container Insights n'est pas activé par défaut.

Étape 4 : vérifier l'état de l'extension

Vérifiez que le module complémentaire a été correctement installé.

Pour vérifier l'état du module complémentaire
  • Exécutez la commande suivante. cluster-nameRemplacez-le par le nom de votre cluster Amazon EKS.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text

    Le résultat attendu estACTIVE.

Étape 5 : vérifier que les modules d'agent sont en cours d'exécution

Vérifiez que les modules d' CloudWatch agent s'exécutent dans l'espace de amazon-cloudwatch noms.

Pour confirmer que les modules d'agent sont en cours d'exécution
  • Exécutez la commande suivante.

    kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent

    Tous les modules d'agent doivent indiquer Running leur statut.

Vérifiez les données dans CloudWatch

Une fois la configuration terminée, les données de Container Insights apparaissent dans CloudWatch un délai de 3 à 5 minutes.

Vérifiez les métriques

Pour vérifier les métriques dans CloudWatch
  1. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Dans le volet de navigation, choisissez Query Studio.

  3. Recherchez des métriques, par exemple en container_cpu_usage_seconds_total utilisant ProMQL.

Vérifiez les journaux

Pour vérifier que des groupes de journaux existent pour votre cluster, exécutez la commande suivante. cluster-nameRemplacez-le par le nom de votre cluster Amazon EKS.

aws logs describe-log-groups \ --log-group-name-prefix "/aws/containerinsights/cluster-name" \ --query "logGroups[].logGroupName" \ --output table

Délai de transmission des données prévu

Le tableau suivant indique la latence attendue pour chaque type de signal une fois que vous avez activé OTel Container Insights.

Signal Latence attendue
Indicateurs d'infrastructure 2 à 3 minutes
Journaux de conteneurs 2 à 3 minutes
Événements du journal des performances 3 à 5 minutes

Résolution des problèmes

Suivez les instructions suivantes pour résoudre les problèmes courants liés à l'activation d'OTel Container Insights sur Amazon EKS.

Add-on le statut indique CREATE_FAILED ou DEGRADED

Symptôme : Lorsque vous exécutezaws eks describe-addon, l'état indique CREATE_FAILED ouDEGRADED.

Cause : L'installation du module complémentaire a échoué, généralement en raison d'autorisations IAM insuffisantes ou d'une association Pod Identity manquante.

Solution : Procédez comme suit pour résoudre ce problème.

  1. Exécutez la commande suivante pour vérifier les informations d'erreur détaillées. Remplacez cluster-name par le nom de votre cluster.

    aws eks describe-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability \ --query "addon.health"
  2. Vérifiez que le rôle IAM existe et qu'il est CloudWatchAgentServerPolicy associé.

  3. Vérifiez que l'association Pod Identity cible le bon espace de noms (amazon-cloudwatch) et le compte de service (cloudwatch-agent).

  4. Supprimez le module complémentaire défaillant et réinstallez-le une fois le problème résolu.

    aws eks delete-addon \ --cluster-name cluster-name \ --addon-name amazon-cloudwatch-observability

Les pods d'agent sont CrashLoopBackOff actifs ou en attente

Symptôme : Lorsque vous exécutezkubectl get pods -n amazon-cloudwatch, un ou plusieurs modules s'affichent CrashLoopBackOff ou affichent Pending leur état.

Cause : Les modules d'agent ne peuvent pas démarrer en raison de ressources de nœud insuffisantes, d'autorisations manquantes ou de problèmes de connectivité réseau.

Solution : Procédez comme suit pour résoudre ce problème.

  1. Consultez les événements du pod pour obtenir des messages d'erreur détaillés.

    kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
  2. Vérifiez les journaux du conteneur de l'agent pour détecter les erreurs de démarrage.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=50
  3. Vérifiez que vos nœuds disposent de suffisamment de processeur et de mémoire pour les modules d'agent.

  4. Vérifiez que le module complémentaire EKS Pod Identity Agent est installé et en cours d'exécution.

    kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent

Les métriques n'apparaissent pas CloudWatch après 5 minutes

Symptôme : les modules de l'agent affichent l'Runningétat, mais aucune métrique n'apparaît CloudWatch après 5 minutes.

Cause : L'agent ne peut pas envoyer de données à CloudWatch, généralement en raison de restrictions réseau ou d'autorisations IAM incorrectes.

Solution : Procédez comme suit pour résoudre ce problème.

  1. Vérifiez que les modules d'agent peuvent atteindre les CloudWatch points de terminaison. Vérifiez que les groupes de sécurité VPC et les ACL réseau autorisent le trafic HTTPS sortant (port 443) vers les points de terminaison. CloudWatch

  2. Vérifiez les journaux de l'agent pour détecter les erreurs d'autorisation ou les délais de connexion.

    kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied"
  3. Vérifiez que la politique est attachée au rôle IAM et que la CloudWatchAgentServerPolicy politique de confiance le permetpods.eks.amazonaws.com.

  4. Si vous utilisez un point de terminaison VPC pour CloudWatch, vérifiez que la politique de point de terminaison autorise les actions requises.