Implementación de Información de contenedores mejorada (versión clásica) con CloudFormation o Helm
Puede implementar Información de contenedores mejorada (versión clásica) como infraestructura como código mediante plantillas de CloudFormation o gráficos de Helm. Este enfoque instala el complemento amazon-cloudwatch-observability con una versión anterior a la versión 6.2.0 para habilitar la canalización de métricas clásicas. Elija este enfoque si administra clústeres a través de canalizaciones de IaC y desea implementaciones repetibles y controladas por versiones.
Recomendación
Para las nuevas implementaciones, le recomendamos Información de contenedores de OTel (recomendado), que utiliza la versión 6.2.0 o posterior del complemento junto con la canalización basada en OTel.
Requisitos previos
Antes de implementar Información de contenedores mejorada (versión clásica) con CloudFormation o Helm, asegúrese de satisfacer los siguientes requisitos.
-
Un clúster de Amazon EKS existente que ejecuta la versión 1.25 de Kubernetes o una posterior
-
AWS CLI versión 2.12.0 o posterior
-
kubectlconfigurado para comunicarse con el clúster de destino -
Permisos de IAM para la creación de pilas de CloudFormation (para el método CloudFormation)
-
Versión 3.8 o posterior de Helm (para el método de Helm)
-
Acceso de salida a Internet desde el clúster a los puntos de conexión de CloudWatch
Deploy with CloudFormation
Utilice una plantilla de CloudFormation para implementar el complemento de observabilidad de CloudWatch con la configuración clásica. Esta plantilla utiliza el recurso AWS::EKS::Addon para instalar el complemento con una versión anterior a la versión 6.2.0.
CloudFormationPlantilla de
La siguiente plantilla crea los recursos que necesita para activar Información de contenedores mejorada (versión clásica) en el clúster de Amazon EKS.
AWSTemplateFormatVersion: '2010-09-09' Description: Deploy Enhanced Container Insights (Classic) on an EKS cluster Parameters: ClusterName: Type: String Description: The name of your EKS cluster Resources: CloudWatchAgentRole: Type: AWS::IAM::Role Properties: RoleName: EKS-CloudWatch-Agent-Role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: pods.eks.amazonaws.com Action: - sts:AssumeRole - sts:TagSession ManagedPolicyArns: - arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy PodIdentityAssociation: Type: AWS::EKS::PodIdentityAssociation Properties: ClusterName: !Ref ClusterName Namespace: amazon-cloudwatch ServiceAccount: cloudwatch-agent RoleArn: !GetAtt CloudWatchAgentRole.Arn CloudWatchObservabilityAddon: Type: AWS::EKS::Addon DependsOn: PodIdentityAssociation Properties: ClusterName: !Ref ClusterName AddonName: amazon-cloudwatch-observability AddonVersion: v5.4.0-eksbuild.1 ServiceAccountRoleArn: !GetAtt CloudWatchAgentRole.Arn ResolveConflicts: OVERWRITE
Esta plantilla crea los siguientes recursos:
-
Un rol de IAM con la política administrada
CloudWatchAgentServerPolicyadjunta -
Una asociación de Pod Identity de EKS que asigna el rol a la cuenta de servicio del agente de CloudWatch
-
El complemento de EKS
amazon-cloudwatch-observabilitycon una versión clásica (anterior a la versión 6.2.0)
Para implementar la pila de CloudFormation
Use la AWS CLI para crear la pila de CloudFormation a partir de la plantilla.
Para implementar la pila
-
Guarde la plantilla anterior en un archivo llamado
classic-container-insights.yaml. -
Ejecute el siguiente comando. Reemplace
cluster-namepor el nombre del clúster de Amazon EKS.aws cloudformation create-stack \ --stack-name classic-container-insights \ --template-body file://classic-container-insights.yaml \ --parameters ParameterKey=ClusterName,ParameterValue=cluster-name\ --capabilities CAPABILITY_NAMED_IAM -
Espere a que se complete la creación de la pila.
aws cloudformation wait stack-create-complete \ --stack-name classic-container-insights -
Compruebe que el estado de la pila sea
CREATE_COMPLETE.aws cloudformation describe-stacks \ --stack-name classic-container-insights \ --query "Stacks[0].StackStatus" \ --output text
Implementación con Helm
Use el gráfico de Helm para implementar Información de contenedores mejorada (versión clásica) si administra las cargas de trabajo de Kubernetes con Helm. El gráfico instala el operador de observabilidad de CloudWatch con la canalización de métricas clásicas.
nota
Cuando utilice Helm, debe crear el rol de IAM y la asociación de Pod Identity por separado. El gráfico de Helm solo instala los recursos de Kubernetes.
Paso 1: Crear el rol de IAM
Cree un rol de IAM para el agente de CloudWatch antes de instalar el gráfico de Helm.
Creación del rol de IAM y de la asociación de Pod Identity
-
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 -
Cree la asociación de Pod Identity. 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 2: instalación del gráfico de Helm
Instale el gráfico de Helm de observabilidad de CloudWatch con una versión clásica (anterior a la versión 6.2.0).
Instalación del gráfico de Helm
-
Ejecute el siguiente comando. Sustituya
cluster-namepor el nombre del clúster de Amazon EKS yregionpor la región de AWS.helm install amazon-cloudwatch-observability \ oci://public.ecr.aws/cloudwatch-agent/amazon-cloudwatch-observability-helm-chart \ --namespace amazon-cloudwatch \ --create-namespace \ --set clusterName=cluster-name\ --set region=region\ --version 5.4.0 -
Compruebe que la versión de Helm se haya implementado correctamente.
helm list -n amazon-cloudwatchEl estado debe ser
deployed.
Verifique la implementación
Una vez finalizada la creación de la pila de CloudFormation o la instalación de Helm, compruebe que el complemento se esté ejecutando y enviando datos a CloudWatch.
Verificación de la implementación
-
Confirme que los pods de agentes de CloudWatch estén en ejecución.
kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agentTodos los pods deben mostrar el estado
Running. -
Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/
. -
En el panel de navegación, elija Metrics (Métricas) y, a continuación, All metrics (Todas las métricas).
-
Compruebe que las métricas aparezcan en el espacio de nombres
ContainerInsightsdel clúster.
Las métricas suelen aparecer en CloudWatch entre 3 y 5 minutos después de que se complete la implementación.
Siguientes pasos
Tras implementar Información de contenedores mejorada (versión clásica), puede explorar los siguientes temas.
-
Para obtener información sobre la configuración basada en la consola, consulte Activación de Información de contenedores mejorada (versión clásica) desde la consola.
-
Para obtener información sobre la configuración basada en la AWS CLI, consulte Guía de configuración (AWS CLI).
-
Para obtener información sobre las métricas que recopila Información de contenedores mejorada (versión clásica), consulte Referencia de métricas de Información de contenedores mejorada (versión clásica).
-
Para migrar 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.
-
Para obtener más información sobre Información de contenedores de OTel, consulte Información de contenedores de OTel (recomendado).