全部產品
Search
文件中心

Container Service for Kubernetes:接入與配置阿里雲Prometheus監控

更新時間:Nov 18, 2025

接入阿里雲Prometheus監控以全面採集ACK叢集的控制面、節點和應用指標,並通過可視化大盤和即時警示提升叢集效能管理效率。

快速選型

阿里雲Prometheus監控全面對接開源Prometheus生態,提供全託管的監控服務。無需關心底層資料存放區、資料展示、系統營運等問題。

  • Pro版(推薦):指標儲存周期90天,並提供全託管的採集器,生產級SLA達99.95%。提供可定製化的Grafana大盤,並預置了Container Service各組件的警示規則。

  • 基礎版:指標儲存周期7天。需自我維護採集器,僅提供基礎的監控大盤。

開啟Prometheus監控

已有叢集中開啟

  1. (條件可選)如為ACK專有叢集,請先為叢集進行監控策略授權

  2. ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇營運管理 > Prometheus 監控

  3. Prometheus 監控頁面,選擇容器監控版本,單擊開始安裝

    開啟監控後,將自動採集預設的基礎指標,如需採集自訂指標,請參考採集自訂指標。可在當前頁面查看叢集監控概覽節點監控應用監控網路監控儲存監控等多個預置的監控大盤。

建立叢集時開啟

  • ACK託管叢集Pro版

    在建立叢集的組件配置頁面,容器監控欄選擇容器叢集監控Pro版容器叢集監控基礎版。更多資訊,請參見建立ACK託管叢集

    智能託管模式Auto Mode預設啟用容器叢集監控基礎版。
  • ACK託管叢集基礎版、ACS叢集及ACK Serverless叢集:

    在建立叢集的組件配置頁面,容器監控欄勾選使用阿里雲可觀測監控 Prometheus 版。安裝版本為容器叢集監控基礎版。

    開啟監控後,將自動採集預設的基礎指標,如需採集自訂指標,請參考採集自訂指標。可在目的地組群詳情頁左側導覽列,選擇營運管理 > Prometheus 監控查看叢集監控概覽節點監控應用監控網路監控儲存監控等多個預置的監控大盤。

配置警示通知

為關鍵計量配置警示規則,發生異常時,會自動通過郵件、簡訊或DingTalk等渠道發送通知。

  1. 登入ARMS控制台,在左側導覽列選擇警示管理 > 通知對象

  2. 通知對象頁面選擇通知方式,建立警示通知對象

  3. 在ARMS控制台左側導覽列,選擇Prometheus監控 > Prometheus警示規則

  4. Prometheus警示規則頁面,單擊建立Prometheus警示規則

    詳細規則配置,請參見配置Prometheus警示規則

採集自訂監控指標

Prometheus監控支援多種方式採集自訂指標(例如請求QPS、處理延遲等),請參見管理容器環境自訂採集規則

關閉Prometheus監控

  1. 在目的地組群詳情頁左側導覽列,單擊組件管理

  2. 組件管理頁面,單擊日誌與監控頁簽,找到ack-arms-prometheus組件。單擊卸載,然後在彈框中單擊確認

計費說明

  • 叢集規模監控費用:基礎版免費Pro版根據叢集節點規模隨用隨付。

  • Prometheus執行個體費用:採集基礎指標,在預設情況下不收取費用。採集自訂指標,根據寫入量、上報量、儲存量及儲存周期等隨用隨付。

如需瞭解詳細的計費規則與定價,請參見容器監控計費

預設採集的基礎指標

啟用Prometheus監控功能後,將自動採集容器監控基礎指標。詳細的基礎指標說明請參見指標說明

  • 容器基礎資源監控kubelet。

  • 叢集應用狀態監控kube-state-metrics。

  • 叢集節點基礎資源監控node-exporter。

  • 叢集節點GPU監控ack-gpu-exporter。

  • 託管版叢集控制面組件監控指標API Server、etcd、kube-scheduler、kube-controller-manager、cloud-controller-manager。

  • 叢集CoreDNS基礎監控指標。

  • 叢集Ingress-Controller基礎監控指標。

  • 需啟用功能後自動上報的基礎指標:

常見問題

Prometheus監控頁面顯示未找到相關監控大盤

開啟Prometheus監控後,在目的地組群詳情頁的營運管理 > Prometheus監控頁面上,看到未找到相關監控大盤的提示,按照以下操作步驟解決。

image

  1. 重新安裝Prometheus監控組件。

    1. 關閉Prometheus監控

    2. 重新安裝組件:

      1. 確認卸載完成後,單擊安裝,然後在彈框中單擊確認

      2. 等待安裝完成後,返回到Prometheus監控頁面查看問題是否已解決。

        如果問題仍未解決,請繼續以下操作。

  2. 檢查Prometheus執行個體接入。

    1. ARMS控制台左側導覽列,單擊接入管理

    2. 已接入環境頁簽,查看容器環境列表,確認是否存在與叢集名稱相同的容器環境。

      • 沒有相應容器環境:參見通過ARMS或Prometheus控制台接入

      • 有相應容器環境:單擊目標容器環境操作列的探針設定,進入探針設定頁面。

        檢查安裝探針是否正常運行。

如何調整指標儲存時間長度?

請參考調整指標儲存時間長度

如何查看ack-arms-prometheus組件版本?

  1. ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,單擊組件管理

  2. 組件管理頁面,單擊日誌與監控頁簽,找到ack-arms-prometheus組件。

    在組件下方顯示目前的版本資訊,如有新版本需要升級,可單擊版本右側升級完成組件升級。

    說明

    當已安裝的組件版本不是最新版本時,才會顯示升級操作。

為什麼GPU監控無法部署?

如GPU節點上存在汙點,可能導致GPU監控無法部署。可通過以下步驟查看GPU節點的汙點情況。

  1. 執行以下命令,查看目標GPU節點的汙點情況。

    如GPU節點擁有自訂的汙點,可找到汙點相關的條目。本文以keytest-keyvaluetest-valueeffectNoSchedule為例說明:

    kubectl describe node cn-beijing.47.100.***.***

    預期輸出:

    Taints:test-key=test-value:NoSchedule
  2. 通過以下兩種方式處理GPU節點的汙點。

    • 執行以下命令,刪除GPU節點的汙點。

      kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
    • 對GPU節點的汙點進行容忍度聲明,允許Pod調度到該汙點的節點上。

      # 1.執行以下命令,編輯ack-prometheus-gpu-exporter。
      kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter
      
      # 2. 在YAML中添加如下欄位,聲明對汙點的容忍度。
      #省略其他欄位。
      #tolerations欄位添加在containers欄位上面,且與containers欄位同級。
      tolerations:
      - key: "test-key"
        operator: "Equal"
        value: "test-value"
        effect: "NoSchedule"
      containers:
       #省略其他欄位。

如何完整地手動刪除ARMS-Prometheus?

只刪除阿里雲Prometheus的命名空間,會導致資源刪除後有殘留配置,影響再次安裝。可執行以下操作,完整地手動刪除ARMS-Prometheus殘餘配置。

  • 刪除arms-prom命名空間。

    kubectl delete namespace arms-prom
  • 刪除ClusterRole。

    kubectl delete ClusterRole arms-kube-state-metrics
    kubectl delete ClusterRole arms-node-exporter
    kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-prometheus-oper3
    kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-pilot-prom-k8s
    kubectl delete ClusterRole gpu-prometheus-exporter
    kubectl delete ClusterRole o11y:addon-controller:role
    kubectl delete ClusterRole arms-aliyunserviceroleforarms-clusterrole
  • 刪除ClusterRoleBinding。

    kubectl delete ClusterRoleBinding arms-node-exporter
    kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2
    kubectl delete ClusterRoleBinding arms-kube-state-metrics
    kubectl delete ClusterRoleBinding arms-pilot-prom-k8s
    kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding gpu-prometheus-exporter
    kubectl delete ClusterRoleBinding o11y:addon-controller:rolebinding
    kubectl delete ClusterRoleBinding arms-kube-state-metrics-agent
    kubectl delete ClusterRoleBinding arms-node-exporter-agent
    kubectl delete ClusterRoleBinding arms-aliyunserviceroleforarms-clusterrolebinding
  • 刪除Role及RoleBinding。

    kubectl delete Role arms-pilot-prom-spec-ns-k8s
    kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system

如何通過Helm方式卸載阿里雲Prometheus?

如通過Helm方式手動部署,或遇到環境、Helm版本問題導致的資源殘留,需通過此方式卸載。

  1. ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇應用 > Helm

  2. Helm頁面,定位arms-prometheus組件,然後單擊操作列的刪除,按照頁面提示勾選清除發布記錄並刪除應用。

安裝ack-arms-prometheus組件時報錯xxx in use

  1. ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇應用 > Helm

  2. Helm頁面,檢查是否存在ack-arms-prometheus。

提示Component Not Installed後繼續安裝ack-arms-prometheus組件,安裝失敗

  • 檢查是否已經安裝ack-arms-prometheus組件。

    1. ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,選擇應用 > Helm

    2. Helm頁面,檢查是否存在ack-arms-prometheus。

  • 檢查ack-arms-prometheus的日誌是否有報錯。

    1. 在叢集詳情頁左側導覽列,選擇工作負載 > 無狀態

    2. 無狀態頁面頂部設定命名空間arms-prom,然後單擊arms-prometheus-ack-arms-prometheus。

    3. 單擊日誌頁簽,查看日誌中是否有報錯。

  • 檢查Agent是否安裝報錯。

    1. 登入ARMS控制台。在左側導覽列,單擊接入管理

    2. 已接入環境頁簽,查看容器環境列表,單擊目標容器環境操作列的探針設定,進入探針設定頁面。

如何為ACK專有叢集進行監控策略授權?

  1. ACK叢集列表頁面,單擊目的地組群名稱,在叢集詳情頁左側導覽列,單擊叢集資訊

  2. 基本資料頁簽下,單擊Worker RAM 角色右側的KubernetesWorkerRole-***,然後在RAM角色頁面的許可權管理頁簽,單擊權限原則列下的k8sWorkerRole****

  3. 在權限原則詳情頁面的策略內容頁簽下,單擊編輯策略內容

  4. 在指令碼編輯框中的Statement欄位中增加以下授權規則,修改完成後單擊確定

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "arms:Describe*",
                    "arms:List*",
                    "arms:Get*",
                    "arms:Search*",
                    "arms:Check*",
                    "arms:Query*",
                    "arms:ListEnvironments",
                    "arms:DescribeAddonRelease",
                    "arms:InstallAddon",
                    "arms:DeleteAddonRelease",
                    "arms:ListEnvironmentDashboards",
                    "arms:ListAddonReleases",
                    "arms:CreateEnvironment",
                    "arms:UpdateEnvironment",
                    "arms:InitEnvironment",
                    "arms:DescribeEnvironment",
                    "arms:InstallEnvironmentFeature",
                    "arms:ListEnvironmentFeatures",
                    "cms:CreateIntegrationPolicy",
                    "cms:ListAddonReleases",
                    "cms:UpdateAddonRelease",
                    "cms:CreateAddonRelease",
                    "cms:GetPrometheusInstance",
                    "cms:ListIntegrationPolicyStorageRequirements"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }

相關文檔

阿里雲Prometheus監控基礎版升級為Pro版