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.
Installez l'agent SSM et l' CloudWatch agent sur les nœuds de travail Amazon EKS à l'aide de preBootstrapCommands
Akkamahadevi Hiremath, Amazon Web Services
Récapitulatif
Ce modèle fournit des exemples de code et des étapes pour installer l'agent AWS Systems Manager (agent SSM) et l' CloudWatch agent Amazon sur les nœuds de travail Amazon Elastic Kubernetes Service (Amazon EKS) dans le cloud Amazon Web Services (AWS) lors de la création du cluster Amazon EKS. Vous pouvez installer l'agent SSM et l' CloudWatch agent en utilisant la preBootstrapCommands propriété du schéma du fichier de eksctl configuration (documentation
Conditions préalables et limitations
Prérequis
Un compte AWS actif
L'utilitaire de ligne de commande eksctl, installé et configuré sous macOS, Linux ou Windows
L'utilitaire de ligne de commande kubectl, installé et configuré sur macOS, Linux ou Windows
Limites
Nous vous recommandons d'éviter d'ajouter des scripts de longue durée à la
preBootstrapCommandspropriété, car cela retarde l'adhésion du nœud au cluster Amazon EKS pendant les activités de dimensionnement. Nous vous recommandons plutôt de créer une Amazon Machine Image (AMI) personnalisée.Ce modèle s'applique uniquement aux instances Amazon EC2 Linux.
Architecture
Pile technologique
Amazon CloudWatch
Amazon Elastic Kubernetes Service (Amazon EKS)
AWS Systems Manager Parameter Store
Architecture cible
Le schéma suivant montre un exemple d'utilisateur se connectant aux nœuds de travail Amazon EKS à l'aide de l'agent SSM installé à l'aide dupreBootstrapCommands.

Le schéma suivant illustre le flux de travail suivant :
L'utilisateur crée un cluster Amazon EKS en utilisant le fichier
eksctlde configuration avec lapreBootstrapCommandspropriété, qui installe l'agent SSM et CloudWatch l'agent.Toute nouvelle instance qui rejoint le cluster ultérieurement en raison d'activités de dimensionnement est créée avec l'agent SSM et CloudWatch l'agent préinstallés.
L'utilisateur se connecte à Amazon à l'aide EC2 de l'agent SSM, puis surveille l'utilisation de la mémoire et du disque à l'aide de l' CloudWatch agent.
Outils
Amazon vous CloudWatch aide à surveiller les indicateurs de vos ressources AWS et des applications que vous exécutez sur AWS en temps réel.
Amazon Elastic Kubernetes Service (Amazon EKS) vous aide à exécuter Kubernetes sur AWS sans avoir à installer ou à gérer votre propre plan de contrôle ou vos propres nœuds Kubernetes.
AWS Systems Manager Parameter Store fournit un stockage hiérarchique sécurisé pour la gestion des données de configuration et la gestion des secrets.
AWS Systems Manager Session Manager vous aide à gérer vos EC2 instances, vos instances sur site et vos machines virtuelles via un shell interactif basé sur un navigateur en un clic ou via l'interface de ligne de commande AWS (AWS CLI).
eksctl
est un utilitaire de ligne de commande permettant de créer et de gérer des clusters Kubernetes sur Amazon EKS. kubectl
est un utilitaire de ligne de commande permettant de communiquer avec le serveur API du cluster.
Épopées
| Tâche | Description | Compétences requises |
|---|---|---|
Stockez le fichier de configuration de l' CloudWatch agent. | Stockez le fichier de configuration de l' CloudWatch agent dans le AWS Systems Manager Parameter Store de la région AWS dans laquelle vous souhaitez créer votre cluster Amazon EKS. Pour ce faire, créez un paramètre dans AWS Systems Manager Parameter Store et notez le nom du paramètre (par exemple, Pour plus d'informations, consultez l'exemple de code de fichier de configuration de l' CloudWatch agent dans la section Informations supplémentaires de ce modèle. | DevOps ingénieur |
Créez le fichier de configuration et le cluster eksctl. |
| AWS DevOps |
| Tâche | Description | Compétences requises |
|---|---|---|
Testez l'agent SSM. | Utilisez SSH pour vous connecter à vos nœuds de cluster Amazon EKS en utilisant l'une des méthodes décrites dans la section Démarrer une session dans la documentation AWS Systems Manager. | AWS DevOps |
Testez l' CloudWatch agent. | Utilisez la CloudWatch console pour valider l' CloudWatch agent :
| AWS DevOps |
Ressources connexes
Installation et exécution de l' CloudWatch agent sur vos serveurs ( CloudWatch documentation Amazon)
Création d'un paramètre Systems Manager (console) (documentation AWS Systems Manager)
Création du fichier de configuration de l' CloudWatch agent ( CloudWatch documentation Amazon)
Démarrage d'une session (AWS CLI) (documentation AWS Systems Manager)
Démarrage d'une session ( EC2 console Amazon) (documentation AWS Systems Manager)
Informations supplémentaires
Exemple de fichier CloudWatch de configuration de l'agent
Dans l'exemple suivant, l' CloudWatch agent est configuré pour surveiller l'utilisation du disque et de la mémoire sur les instances Amazon Linux :
{ "agent": { "metrics_collection_interval": 60, "run_as_user": "cwagent" }, "metrics": { "append_dimensions": { "AutoScalingGroupName": "${aws:AutoScalingGroupName}", "ImageId": "${aws:ImageId}", "InstanceId": "${aws:InstanceId}", "InstanceType": "${aws:InstanceType}" }, "metrics_collected": { "disk": { "measurement": [ "used_percent" ], "metrics_collection_interval": 60, "resources": [ "*" ] }, "mem": { "measurement": [ "mem_used_percent" ], "metrics_collection_interval": 60 } } } }
Exemple de fichier de configuration eksctl
apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: test region: us-east-2 version: "1.24" managedNodeGroups: - name: test minSize: 2 maxSize: 4 desiredCapacity: 2 volumeSize: 20 instanceType: t3.medium preBootstrapCommands: - sudo yum install amazon-ssm-agent -y - sudo systemctl enable amazon-ssm-agent - sudo systemctl start amazon-ssm-agent - sudo yum install amazon-cloudwatch-agent -y - sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c ssm:AmazonCloudwatch-linux iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore
Informations supplémentaires sur le code
Dans la dernière ligne de la
preBootstrapCommandspropriétéAmazonCloudwatch-linuxse trouve le nom du paramètre créé dans le magasin de paramètres AWS System Manager. Vous devez l'inclureAmazonCloudwatch-linuxdans Parameter Store dans la même région AWS où vous avez créé le cluster Amazon EKS. Vous pouvez également spécifier un chemin de fichier, mais nous vous recommandons d'utiliser Systems Manager pour faciliter l'automatisation et la réutilisation.Si vous les utilisez
preBootstrapCommandsdans le fichiereksctlde configuration, deux modèles de lancement s'affichent dans l'AWS Management Console. Le premier modèle de lancement inclut les commandes spécifiées danspreBootstrapCommands. Le second modèle inclut les commandes spécifiées dans les données utilisateur Amazon EKS par défautpreBootstrapCommandset les contient. Ces données sont nécessaires pour que les nœuds rejoignent le cluster. Le groupe Auto Scaling du groupe de nœuds utilise ces données utilisateur pour créer de nouvelles instances.Si vous utilisez l'
iamattribut dans le fichier deeksctlconfiguration, vous devez répertorier les politiques Amazon EKS par défaut ainsi que toutes les politiques supplémentaires requises dans les politiques AWS Identity and Access Management (IAM) jointes. Dans l'extrait de code issu de l'étape Créer le fichier de configuration et le cluster eksctl,CloudWatchAgentServerPolicydes politiques supplémentairesAmazonSSMMangedInstanceCoresont ajoutées pour garantir que l' CloudWatch agent et l'agent SSM fonctionnent comme prévu. LesAmazonEC2ContainerRegistryReadOnlypolitiquesAmazonEKSWorkerNodePolicyAmazonEKS_CNI_Policy, sont des politiques obligatoires requises pour que le cluster Amazon EKS fonctionne correctement.