

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
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands"></a>

*Akkamahadevi Hiremath, Amazon Web Services*

## Resumen
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-summary"></a>

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](https://eksctl.io/usage/schema/)). Luego, puede usar el agente SSM para conectarse a sus nodos de trabajo sin usar un par de claves de Amazon Elastic Compute Cloud (Amazon EC2). Además, puede usar el CloudWatch agente para monitorear la utilización de memoria y disco en sus nodos de trabajo de Amazon EKS.

## Requisitos previos y limitaciones
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-prereqs"></a>

**Requisitos previos **
+ Una cuenta de AWS activa 
+ La [utilidad de línea de comandos eksctl](https://docs.aws.amazon.com/eks/latest/userguide/eksctl.html), instalada y configurada en macOS, Linux o Windows
+ La [utilidad de línea de comandos kubectl](https://docs.aws.amazon.com/eks/latest/userguide/install-kubectl.html), 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](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.customenv.html).
+ Este patrón se aplica únicamente a las instancias de Amazon EC2 Linux.

## Arquitectura
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-architecture"></a>

**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 elv`preBootstrapCommands`.

![\[User connecting to Amazon EKS worker nodes via Administrador de sistemas, with SSM Agent and CloudWatch agent on each node.\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/images/pattern-img/b37a3cdb-204f-4014-8317-3600a793dac7/images/9a5760af-23bb-4616-97b0-b401a9d080cf.png)


En el diagrama, se muestra el siguiente flujo de trabajo:

1. El usuario crea un clúster de Amazon EKS mediante el archivo de `eksctl` configuración con la `preBootstrapCommands` propiedad, que instala el agente y CloudWatch el agente de SSM.

1. 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 

1. 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.

## Tools (Herramientas)
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-tools"></a>
+ [Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 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)](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html) 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html) 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](https://eksctl.io/usage/schema/): es una utilidad sencilla de línea de comandos para crear y administrar clústeres de Kubernetes en Amazon EKS.
+ [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/): es una utilidad de línea de comandos para comunicarse con el servidor de la API del clúster.

## Epics
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-epics"></a>

### Crear un clúster de Amazon EKS
<a name="create-an-amazon-eks-cluster"></a>


| 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html), en la región de AWS en la que desee crear su clúster de Amazon EKS. Para ello, [cree un parámetro](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-create-console.html) en el Almacén de parámetros de AWS Systems Manager y anote el nombre del parámetro (por ejemplo, `AmazonCloudwatch-linux`).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](#install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-additional) de este patrón. | DevOps ingeniero | 
| Cree el archivo de configuración y el clúster de eksctl.  | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands.html) | AWS DevOps | 

### Compruebe que el agente y el agente de SSM CloudWatch funcionan
<a name="verify-that-the-ssm-agent-and-cloudwatch-agent-work"></a>


| 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](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#start-ec2-console%20%20or%20https:%2F%2Fdocs.aws.amazon.com%2Fsystems-manager%2Flatest%2Fuserguide%2Fsession-manager-working-with-sessions-start.html%23sessions-start-cli) 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:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/prescriptive-guidance/latest/patterns/install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands.html) | AWS DevOps | 

## Recursos relacionados
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-resources"></a>
+ [Instalación y ejecución del CloudWatch agente en sus servidores](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html) ( CloudWatch documentación de Amazon)
+ [Creación de un parámetro de Systems Manager (consola)](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-create-console.html) (documentación de AWS Systems Manager)
+ [Crear el archivo de configuración del CloudWatch agente](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file.html) ( CloudWatch documentación de Amazon)
+ [Iniciar una sesión (AWS CLI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#sessions-start-cli) (documentación de AWS Systems Manager)
+ [Inicio de una sesión ( EC2 consola de Amazon)](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#start-ec2-console) (documentación de AWS Systems Manager)

## Información adicional
<a name="install-the-ssm-agent-and-cloudwatch-agent-on-amazon-eks-worker-nodes-using-prebootstrapcommands-additional"></a>

**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 incluir `AmazonCloudwatch-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 archivo `eksctl` 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 en `preBootstrapCommands`. La segunda plantilla incluye los comandos especificados `preBootstrapCommands` 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ó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*, `AmazonSSMMangedInstanceCore` se añaden políticas adicionales para garantizar que el CloudWatch agente `CloudWatchAgentServerPolicy` y el agente SSM funcionen según lo previsto. Las políticas`AmazonEKSWorkerNodePolicy`, `AmazonEKS_CNI_Policy` y `AmazonEC2ContainerRegistryReadOnly` son políticas obligatorias necesarias para que el clúster de Amazon EKS funcione correctamente.