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
Creado por Akkamahadevi Hiremath (AWS)
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
eksctl
configuración con lapreBootstrapCommands
propiedad, 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 supervisar 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-linux
es el nombre del parámetro creado en el almacén de parámetros del Almacén de parámetros de AWS Systems Manager. Debe incluirAmazonCloudwatch-linux
en 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
preBootstrapCommands
en el archivoeksctl
de configuración, verá dos plantillas de lanzamiento en la consola de administración de AWS. La primera plantilla de lanzamiento incluye los comandos especificados enpreBootstrapCommands
. La segunda plantilla incluye los comandos especificadospreBootstrapCommands
y 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
iam
en el archivo de configuracióneksctl
, 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,AmazonSSMMangedInstanceCore
se añaden políticas adicionales para garantizar que el CloudWatch agenteCloudWatchAgentServerPolicy
y el agente SSM funcionen según lo previsto. Las políticasAmazonEKSWorkerNodePolicy
,AmazonEKS_CNI_Policy
yAmazonEC2ContainerRegistryReadOnly
son políticas obligatorias necesarias para que el clúster de Amazon EKS funcione correctamente.