View a markdown version of this page

Implementación de Información de contenedores de OTel con CloudFormation - Amazon CloudWatch

Implementación de Información de contenedores de OTel con CloudFormation

Puede implementar Información de contenedores de OTel como infraestructura como código mediante una plantilla de CloudFormation. Este enfoque es ideal para los equipos que administran clústeres a través de canalizaciones de IaC y desean implementaciones repetibles y controladas por versiones.

La plantilla instala el complemento amazon-cloudwatch-observability de EKS con Información de contenedores de OTel activado. Si prefiere la administración de paquetes nativa de Kubernetes, consulte Implementación de Información de contenedores de OTel con Helm.

Requisitos previos

Antes de implementar Información de contenedores de OTel con CloudFormation, asegúrese de satisfacer los siguientes requisitos.

  • Un clúster de Amazon EKS existente que ejecuta la versión 1.28 de Kubernetes o una posterior

  • AWS CLI versión 2.15.0 o posterior

  • kubectl configurado para comunicarse con el clúster de destino

  • Permisos de IAM para crear pilas de CloudFormation

  • 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, el rol de IAM necesario y la asociación de Pod Identity en una sola pila. La plantilla usa el recurso AWS::EKS::Addon para instalar el complemento con Información de contenedores de OTel activado.

CloudFormationPlantilla de

La siguiente plantilla crea el conjunto completo de recursos que necesita para habilitar Información de contenedores de OTel en el clúster de Amazon EKS.

AWSTemplateFormatVersion: '2010-09-09' Description: Deploy OTel Container Insights 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-Observability-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: v6.2.0-eksbuild.1 ConfigurationValues: '{"otelContainerInsights":{"enabled":true}}' 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 amazon-cloudwatch-observability de EKS con Información de contenedores de OTel activado

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 otel-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 otel-container-insights \ --template-body file://otel-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 otel-container-insights
  4. Compruebe que el estado de la pila sea CREATE_COMPLETE.

    aws cloudformation describe-stacks \ --stack-name otel-container-insights \ --query "Stacks[0].StackStatus" \ --output text

Verifique la implementación

Una vez finalizada la creación de la pila de CloudFormation, 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 Información de contenedores.

  4. Compruebe que el clúster aparezca en la lista de clústeres y que las métricas se estén rellenando.

Las métricas suelen aparecer en CloudWatch entre 3 y 5 minutos después de que se complete la implementación.

Eliminación de la implementación

Para eliminar todos los recursos que creó la plantilla de CloudFormation, elimine la pila.

aws cloudformation delete-stack \ --stack-name otel-container-insights