

# Guía de configuración (AWS CLI)
<a name="container-insights-eks-classic-setup"></a>

En esta guía se explica cómo instalar Información de contenedores mejorada (versión clásica) en un clúster de Amazon EKS existente mediante la AWS CLI. El complemento implementa un agente de CloudWatch como un DaemonSet que recopila métricas de infraestructura, registros de contenedores y datos de rendimiento.

**Modo de mantenimiento**  
Información de contenedores mejorada (versión clásica) está en modo de mantenimiento. Para las nuevas implementaciones, recomendamos [Información de contenedores de OTel (recomendado)](container-insights-eks-otel.md).

## Requisitos previos
<a name="container-insights-eks-classic-setup-prereqs"></a>

Antes de comenzar, compruebe que cumple con los siguientes requisitos.
+ Un clúster de Amazon EKS existente que ejecuta la versión 1.25 de Kubernetes o una posterior
+ Versión de la plataformas `eks.1` o posteriores
+ AWS CLI versión 2.12.0 o posterior
+ `kubectl` configurado para comunicarse con el clúster de destino
+ Permisos de IAM: `eks:CreateAddon`, `eks:DescribeAddon`, `iam:CreateServiceLinkedRole`, `iam:CreateRole` y `iam:AttachRolePolicy`
+ El complemento del agente de Pod Identity de EKS está instalado en el clúster o se han configurado roles de IAM para las cuentas de servicio (IRSA)
+ Acceso de salida a Internet desde el clúster a los puntos de conexión de CloudWatch

## Paso 1: Crear el rol de IAM
<a name="container-insights-eks-classic-setup-step1"></a>

Cree un rol de IAM que permita que el agente de CloudWatch envíe datos a CloudWatch.

**Creación del rol de IAM para el agente de CloudWatch**

1. Ejecute el siguiente comando para crear el rol con una política de confianza para Pod Identity de EKS.

   ```
   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"]
       }]
     }'
   ```

1. Asocie la política administrada por `CloudWatchAgentServerPolicy` al rol.

   ```
   aws iam attach-role-policy \
     --role-name EKS-CloudWatch-Agent-Role \
     --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
   ```

## Paso 2: creación de la asociación de Pod Identity
<a name="container-insights-eks-classic-setup-step2"></a>

Asocie el rol de IAM a la cuenta de servicio del agente de CloudWatch en el clúster.

**Creación de la asociación de Pod Identity**
+ Ejecute el siguiente comando. Sustituya {{cluster-name}} por el nombre del clúster de Amazon EKS y {{account-id}} por el ID de cuenta de AWS.

  ```
  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
  ```

## Paso 3: instalación del complemento de observabilidad de Amazon CloudWatch
<a name="container-insights-eks-classic-setup-step3"></a>

Instale el complemento `amazon-cloudwatch-observability` en el clúster.

**Instalación del complemento**
+ Ejecute el siguiente comando. Reemplace {{cluster-name}} por el nombre del clúster de Amazon EKS.

  ```
  aws eks create-addon \
    --cluster-name {{cluster-name}} \
    --addon-name amazon-cloudwatch-observability \
    --addon-version {{v5.x.x-eksbuild.x}}
  ```

  Sustituya {{v5.x.x-eksbuild.x}} por la última versión 5.x disponible. Si se instala sin `--addon-version`, se instala la última versión (v6.2.0\+), que activa la canalización de OTel en lugar de la versión clásica.

## Paso 4: verificación del estado del complemento
<a name="container-insights-eks-classic-setup-step4"></a>

Confirme que el complemento se instaló correctamente.

**Verificación del estado del complemento**
+ Ejecute el siguiente comando. Reemplace {{cluster-name}} por el nombre del clúster de Amazon EKS.

  ```
  aws eks describe-addon \
    --cluster-name {{cluster-name}} \
    --addon-name amazon-cloudwatch-observability \
    --query "addon.status" \
    --output text
  ```

  El resultado esperado es `ACTIVE`.

## Paso 5: confirmación de que los pods de agente se estén ejecutando
<a name="container-insights-eks-classic-setup-step5"></a>

Compruebe que los pods del agente de CloudWatch se estén ejecutando en el espacio de nombres `amazon-cloudwatch`.

**Confirmación de que los pods de agente se estén ejecutando**
+ Ejecute el siguiente comando.

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

  Todos los pods de agentes deben mostrar el estado `Running`.

## Verificación de datos en CloudWatch
<a name="container-insights-eks-classic-setup-verify"></a>

Tras completar la configuración, los datos de Información de contenedores aparecen en CloudWatch en un plazo de 3 a 5 minutos.

**Verificación de los datos de Información de contenedores**

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación, elija **Información de contenedores**.

1. Compruebe que métricas como `node_cpu_utilization` y `pod_memory_utilization` aparezcan en el clúster.

## Solución de problemas
<a name="container-insights-eks-classic-setup-troubleshoot"></a>

Utilice la siguiente guía para resolver problemas comunes al instalar Información de contenedores mejorada (versión clásica) en Amazon EKS.

### El estado del complemento es CREATE\_FAILED o DEGRADED
<a name="container-insights-eks-classic-setup-ts-create-failed"></a>

**Síntoma:** cuando ejecuta `aws eks describe-addon`, el estado es `CREATE_FAILED` o `DEGRADED`.

**Causa:** se produjo un error en la instalación del complemento porque los permisos de IAM no son suficientes o porque falta una asociación de Pod Identity.

**Solución:** siga estos pasos para resolver este problema.

1. Ejecute el siguiente comando para comprobar la información de error detallada. Sustituya {{cluster-name}} por el nombre de su clúster.

   ```
   aws eks describe-addon \
     --cluster-name {{cluster-name}} \
     --addon-name amazon-cloudwatch-observability \
     --query "addon.health"
   ```

1. Verifique que el rol de IAM exista y tenga la política `CloudWatchAgentServerPolicy` adjunta.

1. Compruebe que la asociación de Pod Identity se dirija al espacio de nombres (`amazon-cloudwatch`) y a la cuenta de servicio (`cloudwatch-agent`) correctos.

1. Elimine el complemento con error y vuelva a instalarlo tras resolver el problema.

   ```
   aws eks delete-addon \
     --cluster-name {{cluster-name}} \
     --addon-name amazon-cloudwatch-observability
   ```

### Las métricas no aparecen en CloudWatch después de 5 minutos
<a name="container-insights-eks-classic-setup-ts-no-metrics"></a>

**Síntoma:** los pods del agente tienen el estado `Running`, pero no aparece ninguna métrica en CloudWatch transcurridos 5 minutos.

**Causa:** el agente no puede enviar datos a CloudWatch debido a restricciones de red o permisos de IAM incorrectos.

**Solución:** siga estos pasos para resolver este problema.

1. Verifique que los grupos de seguridad de VPC y las listas de control de acceso de la red permitan el tráfico HTTPS saliente (puerto 443) hacia los puntos de conexión de CloudWatch.

1. Compruebe los registros del agente para ver si hay errores de permisos o tiempos de espera de conexión.

   ```
   kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied"
   ```

1. Verifique que el rol de IAM tenga la política `CloudWatchAgentServerPolicy` adjunta y que la política de confianza permita `pods.eks.amazonaws.com`.

### Los pods del agente están bloqueados en el estado Pending o CrashLoopBackOff
<a name="container-insights-eks-classic-setup-ts-crashloop"></a>

**Síntoma:** cuando ejecuta `kubectl get pods -n amazon-cloudwatch`, uno o más pods tienen el estado `Pending` o `CrashLoopBackOff`.

**Causa:** los pods del agente no se pueden iniciar debido a la falta de recursos de los nodos, a errores en la extracción de imágenes o la falta de permisos.

**Solución:** siga estos pasos para resolver este problema.

1. Compruebe los mensajes de error detallados en los eventos del pod.

   ```
   kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent
   ```

1. Compruebe que los nodos tengan suficiente CPU y memoria disponibles para los pods del agente.

1. Compruebe que el complemento del agente de Pod Identity de EKS esté instalado y en ejecución.

   ```
   kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent
   ```

## Siguientes pasos
<a name="container-insights-eks-classic-setup-next"></a>

¿Todo listo para actualizar? Para obtener instrucciones paso a paso para pasar de Información de contenedores mejorada (versión clásica) a Información de contenedores de OTel, consulte [Migración de Información de contenedores mejorada (versión clásica) a Información de contenedores de OTel](container-insights-eks-migrate-from-classic.md).