View a markdown version of this page

Déployez Enhanced Container Insights (Classic) avec CloudFormation ou Helm - 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éployez Enhanced Container Insights (Classic) avec CloudFormation ou Helm

Vous pouvez déployer Enhanced Container Insights (Classic) sous forme d'infrastructure sous forme de code à l'aide de CloudFormation modèles ou de diagrammes Helm. Cette approche installe le amazon-cloudwatch-observability module complémentaire avec une version antérieure à la version 6.2.0 pour activer le pipeline métrique classique. Choisissez cette approche si vous gérez des clusters via des pipelines IaC et souhaitez des déploiements reproductibles et contrôlés par version.

Recommendation

Pour les nouveaux déploiements, nous recommandons OTel Container Insights (recommandé) d'utiliser la version complémentaire 6.2.0 ou ultérieure avec le OTel-based pipeline.

Conditions préalables

Avant de déployer Enhanced Container Insights (Classic) avec CloudFormation ou Helm, vérifiez que vous répondez aux exigences suivantes.

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

  • AWS CLI version 2.12.0 ou ultérieure

  • kubectlconfiguré pour communiquer avec votre cluster cible

  • Autorisations IAM pour la création de CloudFormation piles (pour la CloudFormation méthode)

  • Helm v3.8 ou version ultérieure (pour la méthode Helm)

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

Déployez avec CloudFormation

Utilisez un CloudFormation modèle pour déployer le module complémentaire CloudWatch Observability avec la configuration classique. Ce modèle utilise la AWS::EKS::Addon ressource pour installer le module complémentaire avec une version antérieure à la version 6.2.0.

CloudFormation modèle

Le modèle suivant crée les ressources dont vous avez besoin pour activer Enhanced Container Insights (Classic) sur votre cluster Amazon EKS.

AWSTemplateFormatVersion: '2010-09-09' Description: Deploy Enhanced Container Insights (Classic) on an EKS cluster Parameters: ClusterName: Type: String Description: The name of your EKS cluster Resources: CloudWatchAgentRole: Type: AWS::IAM::Role Properties: RoleName: EKS-CloudWatch-Agent-Role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: pods.eks.amazonaws.com Action: - sts:AssumeRole - sts:TagSession ManagedPolicyArns: - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy PodIdentityAssociation: Type: AWS::EKS::PodIdentityAssociation Properties: ClusterName: !Ref ClusterName Namespace: amazon-cloudwatch ServiceAccount: cloudwatch-agent RoleArn: !GetAtt CloudWatchAgentRole.Arn CloudWatchObservabilityAddon: Type: AWS::EKS::Addon DependsOn: PodIdentityAssociation Properties: ClusterName: !Ref ClusterName AddonName: amazon-cloudwatch-observability AddonVersion: v5.4.0-eksbuild.1 ServiceAccountRoleArn: !GetAtt CloudWatchAgentRole.Arn ResolveConflicts: OVERWRITE

Ce modèle crée les ressources suivantes :

  • Un rôle IAM auquel est attachée la politique CloudWatchAgentServerPolicy gérée

  • Une association EKS Pod Identity qui associe le rôle au compte de service de l' CloudWatch agent

  • Le module complémentaire amazon-cloudwatch-observability EKS avec une version classique (antérieure à la version 6.2.0)

Pour déployer le CloudFormation pile

Utilisez le AWS CLI pour créer la CloudFormation pile à partir du modèle.

Pour déployer la pile
  1. Enregistrez le modèle précédent dans un fichier nomméclassic-container-insights.yaml.

  2. Exécutez la commande suivante. cluster-nameRemplacez-le par le nom de votre cluster Amazon EKS.

    aws cloudformation create-stack \ --stack-name classic-container-insights \ --template-body file://classic-container-insights.yaml \ --parameters ParameterKey=ClusterName,ParameterValue=cluster-name \ --capabilities CAPABILITY_NAMED_IAM
  3. Attendez que la création de la pile soit terminée.

    aws cloudformation wait stack-create-complete \ --stack-name classic-container-insights
  4. Vérifiez que l'état de la pile estCREATE_COMPLETE.

    aws cloudformation describe-stacks \ --stack-name classic-container-insights \ --query "Stacks[0].StackStatus" \ --output text

Déployez avec Helm

Utilisez le graphique Helm pour déployer Enhanced Container Insights (Classic) si vous gérez les charges de travail Kubernetes avec Helm. Le graphique installe l'opérateur CloudWatch Observability avec le pipeline métrique classique.

Note

Lorsque vous utilisez Helm, vous devez créer le rôle IAM et l'association Pod Identity séparément. Le graphique Helm installe uniquement les ressources Kubernetes.

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

Créez un rôle IAM pour l' CloudWatch agent avant d'installer le graphique Helm.

Pour créer le rôle IAM et l'association Pod Identity
  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-Agent-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-Agent-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  3. Créez l'association Pod Identity. 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-Agent-Role

Étape 2 : Installation du diagramme Helm

Installez le graphique CloudWatch Observability Helm avec une version classique (antérieure à la version 6.2.0).

Pour installer le graphique Helm
  1. Exécutez la commande suivante. cluster-nameRemplacez-le par le nom de votre cluster Amazon EKS et region par votre AWS région.

    helm install amazon-cloudwatch-observability \ oci://public.ecr.aws/cloudwatch-agent/amazon-cloudwatch-observability-helm-chart \ --namespace amazon-cloudwatch \ --create-namespace \ --set clusterName=cluster-name \ --set region=region \ --version 5.4.0
  2. Vérifiez que la version Helm a été déployée avec succès.

    helm list -n amazon-cloudwatch

    Le statut doit apparaîtredeployed.

Vérification du déploiement

Une fois la création de la CloudFormation pile ou l'installation de Helm terminée, vérifiez que le module complémentaire est en cours d'exécution et qu'il envoie des données à CloudWatch.

Pour vérifier le déploiement
  1. Vérifiez que les modules d' CloudWatch agent sont en cours d'exécution.

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

    Tous les pods doivent indiquer Running leur statut.

  2. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  3. Dans le panneau de navigation, choisissez Metrics (Métriques), puis choisissez All metrics (Toutes les métriques).

  4. Vérifiez que les métriques apparaissent dans l'espace de ContainerInsights noms de votre cluster.

Les métriques apparaissent généralement CloudWatch dans les 3 à 5 minutes suivant la fin du déploiement.

Étapes suivantes

Après avoir déployé Enhanced Container Insights (Classic), vous pouvez explorer les rubriques suivantes.