本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 CloudFormation 或 Helm 部署增強型容器洞見 (傳統)
您可以使用 範本或 Helm Chart,將 CloudFormation 增強型容器洞見 (傳統) 部署為基礎設施做為程式碼。此方法會使用 v6.2.0 之前的版本安裝amazon-cloudwatch-observability附加元件,以啟用 Classic 指標管道。如果您透過 IaC 管道管理叢集,並想要可重複的版本控制部署,請選擇此方法。
建議
對於新的部署,我們建議使用 OTel Container Insights (建議),其使用附加元件 6.2.0 版或更新版本搭配 OTel 型管道。
先決條件
使用 CloudFormation 或 Helm 部署增強型容器洞見 (傳統) 之前,請確認您符合下列要求。
-
執行 Kubernetes 1.25 版或更新版本的現有 Amazon EKS 叢集
-
AWS CLI 2.12.0 版或更新版本
-
kubectl設定為與您的目標叢集通訊 -
建立 CloudFormation 堆疊的 IAM 許可 (適用於 CloudFormation 方法)
-
Helm v3.8 或更新版本 (適用於 Helm 方法)
-
從叢集到 CloudWatch 端點的傳出網際網路存取
使用 部署 CloudFormation
使用 CloudFormation 範本來部署具有 Classic 組態的 CloudWatch Observability 附加元件。此範本使用 AWS::EKS::Addon 資源來安裝 6.2.0 版之前的附加元件。
CloudFormation 範本
下列範本會建立在 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
此範本會建立以下資源:
-
連接
CloudWatchAgentServerPolicy受管政策的 IAM 角色 -
將角色映射至 CloudWatch 代理程式服務帳戶的 EKS Pod Identity 關聯
-
具有 Classic 版本的
amazon-cloudwatch-observabilityEKS 附加元件 (v6.2.0 之前)
部署 CloudFormation 堆疊
使用 從範本 AWS CLI 建立 CloudFormation 堆疊。
部署堆疊
-
將上述範本儲存至名為 的檔案
classic-container-insights.yaml。 -
執行下列命令。使用 Amazon EKS 叢集的名稱取代
cluster-name。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 -
等待堆疊建立完成。
aws cloudformation wait stack-create-complete \ --stack-name classic-container-insights -
確認堆疊狀態為
CREATE_COMPLETE。aws cloudformation describe-stacks \ --stack-name classic-container-insights \ --query "Stacks[0].StackStatus" \ --output text
使用 Helm 部署
如果您使用 Helm 管理 Kubernetes 工作負載,請使用 Helm Chart 部署增強型容器洞見 (傳統)。圖表會使用 Classic 指標管道安裝 CloudWatch 可觀測性運算子。
注意
使用 Helm 時,您必須分別建立 IAM 角色和 Pod Identity 關聯。Helm Chart 只會安裝 Kubernetes 資源。
步驟 1:建立 IAM 角色
安裝 Helm Chart 之前,請為 CloudWatch 代理程式建立 IAM 角色。
建立 IAM 角色和 Pod Identity 關聯
-
執行下列命令來建立具有 EKS Pod Identity 信任政策的角色。
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"] }] }' -
將
CloudWatchAgentServerPolicy受管政策連接至角色。aws iam attach-role-policy \ --role-name EKS-CloudWatch-Agent-Role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy -
建立 Pod Identity 關聯。將
cluster-name取代為 Amazon EKS 叢集的名稱,並將account-id取代為 AWS 您的帳戶 ID。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
步驟 2:安裝 Helm Chart
使用 Classic 版本 (v6.2.0 之前) 安裝 CloudWatch 可觀測性 Helm Chart。
安裝 Helm Chart
-
執行下列命令。將
cluster-name取代為您的 Amazon EKS 叢集名稱,並將region取代為您的 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 -
確認 Helm 版本已成功部署。
helm list -n amazon-cloudwatch狀態必須顯示
deployed。
驗證部署
CloudFormation 堆疊建立或 Helm 安裝完成後,請確認附加元件正在執行並將資料傳送至 CloudWatch。
驗證部署
-
確認 CloudWatch 代理程式 Pod 正在執行。
kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent所有 Pod 必須顯示
Running狀態。 -
透過 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
在導覽窗格中,選擇 Metrics (指標),然後選擇 All metrics (所有指標)。
-
確認 指標出現在叢集的
ContainerInsights命名空間中。
指標通常會在部署完成後 3 到 5 分鐘內出現在 CloudWatch 中。
後續步驟
部署 Enhanced Container Insights (Classic) 之後,您可以探索下列主題。
-
如需主控台型設定,請參閱 從主控台啟用增強型容器洞見 (傳統)。
-
如需 AWS CLI以 為基礎的設定,請參閱 設定指南 (AWS CLI)。
-
如需增強型容器洞見 (傳統) 收集的指標資訊,請參閱 增強型容器洞見 (傳統) 指標參考。
-
若要遷移至 OTel Container Insights,請參閱 從增強型容器洞見 (傳統) 遷移至 OTel 容器洞見。
-
如需 OTel Container Insights 的詳細資訊,請參閱 OTel Container Insights (建議)。