Guía de configuración (AWS CLI)
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).
Requisitos previos
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.1o posteriores -
AWS CLI versión 2.12.0 o posterior
-
kubectlconfigurado para comunicarse con el clúster de destino -
Permisos de IAM:
eks:CreateAddon,eks:DescribeAddon,iam:CreateServiceLinkedRole,iam:CreateRoleyiam: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
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
-
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"] }] }' -
Asocie la política administrada por
CloudWatchAgentServerPolicyal 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
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-namepor el nombre del clúster de Amazon EKS yaccount-idpor el ID de cuenta de AWS.aws eks create-pod-identity-association \ --cluster-namecluster-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
Instale el complemento amazon-cloudwatch-observability en el clúster.
Instalación del complemento
-
Ejecute el siguiente comando. Reemplace
cluster-namepor el nombre del clúster de Amazon EKS.aws eks create-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --addon-versionv5.x.x-eksbuild.xSustituya
v5.x.x-eksbuild.xpor 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
Confirme que el complemento se instaló correctamente.
Verificación del estado del complemento
-
Ejecute el siguiente comando. Reemplace
cluster-namepor el nombre del clúster de Amazon EKS.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output textEl resultado esperado es
ACTIVE.
Paso 5: confirmación de que los pods de agente se estén ejecutando
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-agentTodos los pods de agentes deben mostrar el estado
Running.
Verificación de datos en CloudWatch
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
-
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
En el panel de navegación, elija Información de contenedores.
-
Compruebe que métricas como
node_cpu_utilizationypod_memory_utilizationaparezcan en el clúster.
Solución de problemas
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
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.
-
Ejecute el siguiente comando para comprobar la información de error detallada. Sustituya
cluster-namepor el nombre de su clúster.aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.health" -
Verifique que el rol de IAM exista y tenga la política
CloudWatchAgentServerPolicyadjunta. -
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. -
Elimine el complemento con error y vuelva a instalarlo tras resolver el problema.
aws eks delete-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability
Las métricas no aparecen en CloudWatch después de 5 minutos
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.
-
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.
-
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" -
Verifique que el rol de IAM tenga la política
CloudWatchAgentServerPolicyadjunta y que la política de confianza permitapods.eks.amazonaws.com.
Los pods del agente están bloqueados en el estado Pending o CrashLoopBackOff
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.
-
Compruebe los mensajes de error detallados en los eventos del pod.
kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent -
Compruebe que los nodos tengan suficiente CPU y memoria disponibles para los pods del agente.
-
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
¿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.