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
-
kubectlconfigurado 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
CloudWatchAgentServerPolicyadjunta -
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-observabilityde 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
-
Guarde la plantilla anterior en un archivo llamado
otel-container-insights.yaml. -
Ejecute el siguiente comando. Reemplace
cluster-namepor 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 -
Espere a que se complete la creación de la pila.
aws cloudformation wait stack-create-complete \ --stack-name otel-container-insights -
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
-
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 Información de contenedores.
-
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