View a markdown version of this page

Implementación de Información de contenedores mejorada (versión clásica) con CloudFormation o Helm - Amazon CloudWatch

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

  • kubectl configurado 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 CloudWatchAgentServerPolicy adjunta

  • 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-observability con 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
  1. Guarde la plantilla anterior en un archivo llamado classic-container-insights.yaml.

  2. Ejecute el siguiente comando. Reemplace cluster-name por 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
  3. Espere a que se complete la creación de la pila.

    aws cloudformation wait stack-create-complete \ --stack-name classic-container-insights
  4. 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
  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"] }] }'
  2. 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
  3. Cree la asociación de Pod Identity. 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 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
  1. Ejecute el siguiente comando. Sustituya cluster-name por el nombre del clúster de Amazon EKS y region por 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
  2. Compruebe que la versión de Helm se haya implementado correctamente.

    helm list -n amazon-cloudwatch

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

    Todos los pods deben mostrar el estado Running.

  2. Abra la consola de CloudWatch en https://console.aws.amazon.com/cloudwatch/.

  3. En el panel de navegación, elija Metrics (Métricas) y, a continuación, All metrics (Todas las métricas).

  4. Compruebe que las métricas aparezcan en el espacio de nombres ContainerInsights del 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.