如何使用 Amazon CloudWatch Observability 附加元件來監控 Amazon EKS 叢集?
我想使用 Amazon CloudWatch Observability 附加元件來監控 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確認您使用的是最新的 AWS CLI 版本。
先決條件:
- 您有一個可正常運作的 Amazon EKS 叢集,且該叢集的附加節點位於支援 CloudWatch Container Insights 的 AWS 區域中。
- 您在叢集上安裝了 kubectl。
- 您在機器上安裝了 eksctl CLI。
為附加元件建立 IAM 角色
若要建立 AWS Identity and Access Management (IAM) OpenID Connect (OIDC) 供應商,請執行下列命令:
eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve
**注意:**將 my-cluster-name 替換為您的叢集名稱。如需詳細資訊,請參閱將 IAM 角色指派給 Kubernetes 服務帳戶。
若要建立附加了 CloudWatchAgentServerPolicy 的 IAM 角色,請執行下列命令。
eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch --cluster my-cluster-name \ --role-name AmazonCloudWatchObservabilityRole \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --role-only \ --approve
**注意:**將 my-cluster-name 替換為您的叢集名稱。上述命令也會將代理程式服務帳戶設定為使用 OIDC 來承擔角色。
安裝附加元件
若要安裝該附加元件,請使用 Amazon EKS 主控台或 AWS CLI。
Amazon EKS 主控台
請完成下列步驟:
- 開啟 Amazon EKS console (Amazon EKS 主控台)。
- 在導覽窗格中,請選取 Clusters (叢集)。
- 請選擇您的叢集名稱,然後選擇 Add-ons (附加元件) 索引標籤。
- 請選擇 Get more add-ons (取得更多附加元件),然後選擇 Select add-ons (選取附加元件)。
- 在 Amazon EKS-addons 區段中,請選取 Amazon CloudWatch Observability,然後選擇 Next (下一步)。
- 在 Configure selected add-ons settings (設定所選附加元件設定) 頁面上,請選取要使用的 Version (版本)。
- 在 Select IAM role (選取 IAM 角色),請選取 AmazonCloudWatchObservabilityRole,然後選擇 Next (下一步)。
- 在 Review and add (檢閱並新增) 頁面上,選擇 Create (建立)。
AWS CLI
若要安裝附加元件,請執行以下 create-addon 命令:
aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::Account-ID:role/AmazonCloudWatchObservabilityRole
**注意:**將 my-cluster-name 替換為您的叢集名稱,將 Account-ID 替換為您的 AWS 帳戶 ID。
安裝完成後,Amazon EKS 會在您的叢集中建立 amazon-cloudwatch 命名空間。CloudWatch 代理程式和 Fluent Bit Pod 在您的叢集中也處於作用中狀態。
若要查看作用中的 Pod,請執行以下命令:
kubectl get pods -n amazon-cloudwatch
輸出範例:
NAME READY STATUS RESTARTS AGE amazon-cloudwatch-observability-controller-manager-6c685b4wsdbg 1/1 Running 0 16s cloudwatch-agent-76bnd 1/1 Running 0 16s cloudwatch-agent-nbdgm 1/1 Running 0 16s fluent-bit-45wl4 1/1 Running 0 16s fluent-bit-rsfc7 1/1 Running 0 16s
部署範例應用程式
如果您的叢集上沒有可用於收集指標的工作負載,請部署下列範例工作負載:
cat <<EOF >deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: eks-cw-sample-app labels: app: eks-cw-sample-app spec: replicas: 3 selector: matchLabels: app: eks-cw-sample-app template: metadata: labels: app: eks-cw-sample-app spec: containers: - name: nginx image: public.ecr.aws/nginx/nginx:1.27 ports: - name: http containerPort: 80 imagePullPolicy: IfNotPresent EOF kubectl apply -f deployment.yaml
使用上述工作負載來確認 CloudWatch 是否有正確收集指標。
在 CloudWatch 主控台上監控叢集
安裝 Container Insights 後,在 CloudWatch 主控台上查看您的指標。
相關資訊
- 語言
- 中文 (繁體)

相關內容
- 已提問 3 年前
AWS 官方已更新 6 個月前