Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Instale el agente SSM y el CloudWatch agente en los nodos de trabajo de Amazon EKS mediante preBootstrapCommands
Akkamahadevi Hiremath, Amazon Web Services
Resumen
Este patrón proporciona ejemplos de código y pasos para instalar el agente de AWS Systems Manager (SSM Agent) y el agente de Amazon  CloudWatch  en los nodos de trabajo de Amazon Elastic Kubernetes Service (Amazon EKS) en la nube de Amazon Web Services (AWS) durante la creación del clúster de Amazon EKS. Puede instalar el agente SSM y el  CloudWatch  agente mediante la preBootstrapCommands propiedad del esquema del archivo de eksctl configuración (documentación de Weaveworks
Requisitos previos y limitaciones
Requisitos previos
- Una cuenta de AWS activa 
- La utilidad de línea de comandos eksctl, instalada y configurada en macOS, Linux o Windows 
- La utilidad de línea de comandos kubectl, instalada y configurada en macOS, Linux o Windows 
Limitaciones
- Le recomendamos que evite añadir scripts de ejecución prolongada a la propiedad - preBootstrapCommands, ya que esto retrasa la incorporación del nodo al clúster de Amazon EKS durante las actividades de escalado. En su lugar, le recomendamos que cree una imagen de máquina de Amazon Machine (AMI) personalizada.
- Este patrón se aplica únicamente a las instancias de Amazon EC2 Linux. 
Arquitectura
Pila de tecnología
- Amazon CloudWatch 
- Amazon Elastic Kubernetes Service (Amazon EKS) 
- Almacén de parámetros de AWS Systems Manager 
Arquitectura de destino
El siguiente diagrama muestra un ejemplo de un usuario que se conecta a los nodos de trabajo de Amazon EKS mediante el agente SSM, que se instaló mediante elvpreBootstrapCommands.

En el diagrama, se muestra el siguiente flujo de trabajo:
- El usuario crea un clúster de Amazon EKS mediante el archivo de - eksctlconfiguración con la- preBootstrapCommandspropiedad, que instala el agente y CloudWatch el agente de SSM.
- Todas las instancias nuevas que se unan al clúster más adelante debido a actividades de escalado se crean con el agente y el agente SSM preinstalados. CloudWatch 
- El usuario se conecta a Amazon EC2 mediante el agente SSM y, a continuación, supervisa el uso de la memoria y el disco mediante el CloudWatch agente. 
Herramientas
- Amazon le CloudWatch ayuda a monitorizar las métricas de sus recursos de AWS y las aplicaciones que ejecuta en AWS en tiempo real. 
- Amazon Elastic Kubernetes Service (Amazon EKS) le ayuda a ejecutar Kubernetes en AWS sin necesidad de instalar ni mantener su propio plano de control o nodos de Kubernetes. 
- El Almacén de parámetros de AWS Systems Manager proporciona un almacenamiento seguro y jerárquico para administrar los datos de configuración y los secretos. 
- El administrador de sesiones de AWS Systems Manager lo ayuda a administrar sus EC2 instancias, instancias locales y máquinas virtuales mediante un shell interactivo basado en el navegador con un solo clic o mediante la interfaz de línea de comandos de AWS (AWS CLI). 
- eksctl - : es una utilidad sencilla de línea de comandos para crear y administrar clústeres de Kubernetes en Amazon EKS. 
- kubectl - : es una utilidad de línea de comandos para comunicarse con el servidor de la API del clúster. 
Epics
| Tarea | Descripción | Habilidades requeridas | 
|---|---|---|
| Guarde el archivo de configuración del agente CloudWatch . | Guarde el archivo de configuración del  CloudWatch  agente en el almacén de parámetros de AWS Systems Manager, en la región de AWS en la que desee crear su clúster de Amazon EKS. Para ello, cree un parámetro en el Almacén de parámetros de AWS Systems Manager y anote el nombre del parámetro (por ejemplo,  Para obtener más información, consulte el ejemplo de código del archivo de configuración del CloudWatch agente en la sección de información adicional de este patrón. | DevOps ingeniero | 
| Cree el archivo de configuración y el clúster de eksctl. | 
 | AWS DevOps | 
| Tarea | Descripción | Habilidades requeridas | 
|---|---|---|
| Pruebe el agente de SSM. | Utilice SSH para conectarse a los nodos de su clúster de Amazon EKS mediante cualquiera de los métodos descritos en Iniciar una sesión en la documentación de AWS Systems Manager. | AWS DevOps | 
| Pon a prueba el CloudWatch agente. | Utilice la CloudWatch consola para validar el CloudWatch agente: 
 | AWS DevOps | 
Recursos relacionados
- Instalación y ejecución del CloudWatch agente en sus servidores ( CloudWatch documentación de Amazon) 
- Creación de un parámetro de Systems Manager (consola) (documentación de AWS Systems Manager) 
- Crear el archivo de configuración del CloudWatch agente ( CloudWatch documentación de Amazon) 
- Iniciar una sesión (AWS CLI) (documentación de AWS Systems Manager) 
- Inicio de una sesión ( EC2 consola de Amazon) (documentación de AWS Systems Manager) 
Información adicional
Ejemplo de archivo de configuración del CloudWatch agente
En el siguiente ejemplo, el CloudWatch agente está configurado para supervisar el uso del disco y la memoria en las instancias de 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 } } } }
Ejemplo de archivo de configuración 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
Detalles de código adicionales
- En la última línea de la propiedad - preBootstrapCommands,- AmazonCloudwatch-linuxes el nombre del parámetro creado en el almacén de parámetros del Almacén de parámetros de AWS Systems Manager. Debe incluir- AmazonCloudwatch-linuxen el Almacén de parámetros de la misma región de AWS en la que creó el clúster de Amazon EKS. También puede especificar una ruta de archivo, pero le recomendamos que utilice Systems Manager para facilitar la automatización y la reutilización.
- Si las utiliza - preBootstrapCommandsen el archivo- eksctlde configuración, verá dos plantillas de lanzamiento en la consola de administración de AWS. La primera plantilla de lanzamiento incluye los comandos especificados en- preBootstrapCommands. La segunda plantilla incluye los comandos especificados- preBootstrapCommandsy los datos de usuario predeterminados de Amazon EKS. Estos datos son necesarios para que los nodos se unan al clúster. El grupo Auto Scaling del grupo de nodos utiliza estos datos de usuario para generar nuevas instancias.
- Si usa el atributo - iamen el archivo de configuración- eksctl, debe enumerar las políticas predeterminadas de Amazon EKS junto con cualquier política adicional requerida en las políticas de AWS Identity and Access Management (IAM) adjuntas. En el fragmento de código del paso Crear el clúster y el archivo de configuración eksctl,- AmazonSSMMangedInstanceCorese añaden políticas adicionales para garantizar que el CloudWatch agente- CloudWatchAgentServerPolicyy el agente SSM funcionen según lo previsto. Las políticas- AmazonEKSWorkerNodePolicy,- AmazonEKS_CNI_Policyy- AmazonEC2ContainerRegistryReadOnlyson políticas obligatorias necesarias para que el clúster de Amazon EKS funcione correctamente.