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 Metrics (Métricas) e, em seguida, All metrics (Todas as métricas).

  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.