本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定指南 (AWS CLI)
本指南說明如何使用 在現有的 Amazon EKS 叢集上安裝增強型容器洞見 (傳統) AWS CLI。附加元件會將 CloudWatch 代理程式部署為 DaemonSet,以收集基礎設施指標、容器日誌和效能資料。
維護模式
Enhanced Container Insights (Classic) 處於維護模式。對於新的部署,我們建議使用 OTel Container Insights (建議)。
先決條件
開始之前,請確認您符合下列要求。
-
執行 Kubernetes 1.25 版或更新版本的現有 Amazon EKS 叢集
-
平台版本
eks.1或更新版本 -
AWS CLI 2.12.0 版或更新版本
-
kubectl設定為與您的目標叢集通訊 -
IAM 許可:
eks:CreateAddon、eks:DescribeAddon、iam:CreateRole、iam:CreateServiceLinkedRole和iam:AttachRolePolicy -
叢集上安裝的 EKS Pod Identity Agent 附加元件,或已設定的 IAM Roles for Service Accounts (IRSA)
-
從叢集到 CloudWatch 端點的傳出網際網路存取
步驟 1:建立 IAM 角色
建立允許 CloudWatch 代理程式將資料傳送至 CloudWatch 的 IAM 角色。
建立 CloudWatch 代理程式 IAM 角色
-
執行下列命令來建立具有 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
步驟 2:建立 Pod Identity 關聯
將 IAM 角色與叢集中的 CloudWatch 代理程式服務帳戶建立關聯。
建立 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
步驟 3:安裝 Amazon CloudWatch Observability 附加元件
在叢集上安裝 amazon-cloudwatch-observability 附加元件。
安裝 附加元件
-
執行下列命令。使用 Amazon EKS 叢集的名稱取代
cluster-name。aws eks create-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --addon-versionv5.x.x-eksbuild.x將
v5.x.x-eksbuild.x取代為最新的可用 v5.x 版本。安裝 而不--addon-version安裝最新版本 (v6.2.0+),這會啟用 OTel 管道,而不是 Classic。
步驟 4:驗證附加元件狀態
確認附加元件已成功安裝。
驗證附加元件狀態
-
執行下列命令。使用 Amazon EKS 叢集的名稱取代
cluster-name。aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.status" \ --output text預期的輸出為
ACTIVE。
步驟 5:確認代理程式 Pod 正在執行
確認 CloudWatch 代理程式 Pod 在 amazon-cloudwatch 命名空間中執行。
確認代理程式 Pod 正在執行
-
執行下列命令。
kubectl get pods -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent所有代理程式 Pod 必須顯示
Running狀態。
驗證 CloudWatch 中的資料
完成設定後,Container Insights 資料會在 3 到 5 分鐘內顯示在 CloudWatch 中。
驗證 Container Insights 資料
-
透過 https://console.aws.amazon.com/cloudwatch/
開啟 CloudWatch 主控台。 -
在導覽窗格中,選擇容器洞見。
-
確認叢集
pod_memory_utilization出現node_cpu_utilization和 等指標。
疑難排解
當您在 Amazon EKS 上安裝增強型容器洞見 (傳統) 時,請使用下列指引來解決常見問題。
附加元件狀態顯示 CREATE_FAILED 或 DEGRADED
徵狀:執行 時aws eks describe-addon,狀態會顯示 CREATE_FAILED或 DEGRADED。
原因:附加元件安裝失敗,因為 IAM 許可不足或缺少 Pod Identity 關聯。
解決方案:完成下列步驟以解決此問題。
-
執行下列命令來檢查詳細錯誤資訊。以您的叢集名稱取代
cluster-name。aws eks describe-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability \ --query "addon.health" -
確認 IAM 角色存在且已
CloudWatchAgentServerPolicy連接 。 -
確認 Pod Identity 關聯以正確的命名空間 (
amazon-cloudwatch) 和服務帳戶 () 為目標cloudwatch-agent。 -
刪除失敗的附加元件,並在解決問題後重新安裝它。
aws eks delete-addon \ --cluster-namecluster-name\ --addon-name amazon-cloudwatch-observability
指標在 5 分鐘後未出現在 CloudWatch 中
徵狀:代理程式 Pod 會顯示Running狀態,但 5 分鐘後 CloudWatch 中不會顯示指標。
原因:由於網路限制或不正確的 IAM 許可,客服人員無法將資料傳送至 CloudWatch。
解決方案:完成下列步驟以解決此問題。
-
確認您的 VPC 安全群組和網路 ACLs傳出 HTTPS 流量 (連接埠 443) 到 CloudWatch 端點。
-
檢查代理程式日誌是否有許可錯誤或連線逾時。
kubectl logs -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent --tail=100 | grep -i "error\|timeout\|denied" -
確認 IAM 角色已連接
CloudWatchAgentServerPolicy政策,且信任政策允許pods.eks.amazonaws.com。
客服人員 Pod 卡在待定或 CrashLoopBackOff 中
徵狀:執行 時kubectl get pods -n amazon-cloudwatch,一或多個 Pod 會顯示 Pending或 CrashLoopBackOff 狀態。
原因:代理程式 Pod 無法啟動,因為節點資源不足、映像提取失敗或缺少許可。
解決方案:完成下列步驟以解決此問題。
-
檢查 Pod 事件以取得詳細的錯誤訊息。
kubectl describe pod -n amazon-cloudwatch -l app.kubernetes.io/name=cloudwatch-agent -
確認您的節點有足夠的 CPU 和記憶體可供代理程式 Pod 使用。
-
確認已安裝並執行 EKS Pod Identity Agent 附加元件。
kubectl get pods -n kube-system -l app.kubernetes.io/name=eks-pod-identity-agent
後續步驟
準備好升級了嗎? 如需從增強型容器洞見 (傳統) 移至 OTel 容器洞見的step-by-step說明,請參閱 從增強型容器洞見 (傳統) 遷移至 OTel 容器洞見。