跳至內容

如何使用 Amazon CloudWatch Observability 附加元件來監控 Amazon EKS 叢集?

2 分的閱讀內容
0

我想使​​用 Amazon CloudWatch Observability 附加元件來監控 Amazon Elastic Kubernetes Service (Amazon EKS) 叢集。

解決方法

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確認您使用的是最新的 AWS 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 主控台

請完成下列步驟:

  1. 開啟 Amazon EKS console (Amazon EKS 主控台)。
  2. 在導覽窗格中,請選取 Clusters (叢集)。
  3. 請選擇您的叢集名稱,然後選擇 Add-ons (附加元件) 索引標籤。
  4. 請選擇 Get more add-ons (取得更多附加元件),然後選擇 Select add-ons (選取附加元件)。
  5. Amazon EKS-addons 區段中,請選取 Amazon CloudWatch Observability,然後選擇 Next (下一步)。
  6. Configure selected add-ons settings (設定所選附加元件設定) 頁面上,請選取要使用的 Version (版本)。
  7. Select IAM role (選取 IAM 角色),請選取 AmazonCloudWatchObservabilityRole,然後選擇 Next (下一步)。
  8. 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 主控台上查看您的指標。

您也可以在叢集上使用 AWS Fargate 記錄

相關資訊

Amazon EKS 上的記錄和監控

AWS 官方已更新 1 年前