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
-
kubectlconfigurado 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
CloudWatchAgentServerPolicyanexada -
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-observabilityEKS 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
-
Salve o modelo anterior em um arquivo chamado
classic-container-insights.yaml. -
Execute o comando a seguir. Substitua
cluster-namepelo 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 -
Aguarde a conclusão da criação da pilha.
aws cloudformation wait stack-create-complete \ --stack-name classic-container-insights -
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
-
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"] }] }' -
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 -
Crie a associação de Identidade de Pods. Substitua
cluster-namepelo nome do seu cluster do Amazon EKS eaccount-idpelo ID da sua conta da AWS.aws eks create-pod-identity-association \ --cluster-namecluster-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
-
Execute o comando a seguir. Substitua
cluster-namepelo nome do seu cluster do Amazon EKS eregionpela 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 -
Verifique se a versão do Helm foi implantada com sucesso.
helm list -n amazon-cloudwatchO 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
-
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-agentTodos os pods devem mostrar o status
Running. -
Abra o console do CloudWatch, em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, escolha Metrics (Métricas) e, em seguida, All metrics (Todas as métricas).
-
Verifique se as métricas aparecem no namespace
ContainerInsightsdo 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.
-
Para configuração baseada em console, consulte Ative o Enhanced Container Insights (Classic) a partir do console.
-
Para uma configuração baseada na AWS CLI, consulte Guia de instalação (AWS CLI).
-
Para obter informações sobre as métricas que o Enhanced Container Insights (Classic) coleta, consulte Referência métrica do Enhanced Container Insights (Classic).
-
Para migrar para OTel Container Insights, consulte Migre do Enhanced Container Insights (Classic) para o OTel Container Insights.
-
Para obter mais informações sobre o OTel Container Insights, consulte OTel Container Insights (recomendado).