View a markdown version of this page

Implante o Enhanced Container Insights (Classic) com CloudFormation ou Helm - Amazon CloudWatch

Implante o Enhanced Container Insights (Classic) com CloudFormation ou Helm

Você pode implantar o Enhanced Container Insights (Classic) como infraestrutura como código usando modelos CloudFormation ou charts do Helm. Essa abordagem instala o complemento amazon-cloudwatch-observability com uma versão anterior à v6.2.0 para ativar o pipeline de métrica Classic. Escolha essa abordagem se você gerencia clusters por meio de pipelines de IaC e deseja implantações reproduzíveis e controladas por versão.

Recomendação

Para novas implantações, recomendamos OTel Container Insights (recomendado), que usa a versão 6.2.0 ou posterior do complemento com o pipeline baseado em OTel.

Pré-requisitos

Antes de você implantar o Enhanced Container Insights (Classic) com CloudFormation ou Helm, verifique se atende aos seguintes requisitos.

  • Um cluster existente do Amazon EKS executando o Kubernetes versão 1.25 ou posterior

  • AWS CLI versão 2.12.0 ou posterior

  • kubectl configurado para comunicar-se com o cluster de destino

  • Permissões do IAM para criação de pilhas de CloudFormation (para o método CloudFormation)

  • Helm v3.8 ou posterior (para o método Helm)

  • Acesso à Internet de saída do cluster para os endpoints do CloudWatch

Implantar com CloudFormation

Use um modelo CloudFormation para implantar o complemento de observabilidade CloudWatch Observability com a configuração Classic. Esse modelo usa o recurso AWS::EKS::Addon para instalar o complemento com uma versão anterior à v6.2.0.

CloudFormationModelo do

O modelo a seguir cria os recursos necessários para ativar o Enhanced Container Insights (Classic) no seu cluster 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

Este modelo cria os seguintes recursos:

  • Um perfil do IAM com a política gerenciada CloudWatchAgentServerPolicy anexada

  • Uma associação da Identidade de Pods EKS que mapeia a função para a conta de serviço do atendente do CloudWatch

  • O complemento amazon-cloudwatch-observability EKS com uma versão clássica (anterior à v6.2.0)

Para implantar a pilha do CloudFormation

Use AWS CLI para criar a pilha do CloudFormation a partir do modelo.

Para implantar a pilha
  1. Salve o modelo anterior em um arquivo chamado classic-container-insights.yaml.

  2. Execute o comando a seguir. Substitua cluster-name pelo nome do cluster do 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. Aguarde a conclusão da criação da pilha.

    aws cloudformation wait stack-create-complete \ --stack-name classic-container-insights
  4. Verifique se o status da pilha é CREATE_COMPLETE.

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

Implantar com Helm

Use o chart do Helm para implantar o Enhanced Container Insights (Classic) se você gerencia workloads do Kubernetes com o Helm. O gráfico instala o operador de observabilidade CloudWatch Observability com o pipeline de métrica Classic.

nota

Ao usar o Helm, você deve criar o perfil do IAM e a associação da Identidade de Pods separadamente. O chart do Helm instala somente os recursos do Kubernetes.

Etapa 1: Criar o perfil do IAM

Crie um perfil do IAM para o atendente do CloudWatch antes de instalar o chart do Helm.

Para criar o perfil do IAM e a associação da Identidade de Pods
  1. Execute o seguinte comando para criar a função com uma política de confiança para a Identidade de Pods 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. Anexe a política gerenciada CloudWatchAgentServerPolicy à função.

    aws iam attach-role-policy \ --role-name EKS-CloudWatch-Agent-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
  3. Crie a associação de Identidade de Pods. Substitua cluster-name pelo nome do seu cluster do Amazon EKS e account-id pelo ID da sua conta da 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

Etapa 2: instale o chart do Helm

Instale o chart do CloudWatch Observability Helm com uma versão Classic (anterior à v6.2.0).

Para instalar o chart do Helm
  1. Execute o comando a seguir. Substitua cluster-name pelo nome do seu cluster do Amazon EKS e region pela sua Região da 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. Verifique se a versão do Helm foi implantada com sucesso.

    helm list -n amazon-cloudwatch

    O status deve exibir deployed.

Verificar a implantação

Após a conclusão da criação da pilha do CloudFormation ou da instalação do Helm, verifique se o complemento está em execução e enviando dados para o CloudWatch.

Como verificar a implantação
  1. Confirme se os pods de atendente do CloudWatch estão em execução.

    kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent

    Todos os pods devem mostrar o status Running.

  2. Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/.

  3. No painel de navegação, escolha Métricas e, em seguida, Métricas clássicas.

  4. Verifique se as métricas aparecem no namespace ContainerInsights do seu cluster.

As métricas geralmente aparecem no CloudWatch dentro de 3 a 5 minutos após a conclusão da implantação.

Próximas etapas

Depois de implantar o Enhanced Container Insights (Classic), você pode explorar os tópicos a seguir.