全部產品
Search
文件中心

Container Service for Kubernetes:將阿里雲Prometheus接入註冊叢集

更新時間:Sep 26, 2025

您可以通過阿里雲Prometheus即時監控註冊叢集的狀態,可視化的監控資料大盤以及即時接收警示等。本文介紹如何將阿里雲Prometheus接入至註冊叢集中。

前提條件

  • 已建立ACK One註冊叢集,並已將本機資料中心自建Kubernetes叢集接入ACK One註冊叢集。具體操作,請參見建立ACK One註冊叢集

  • 對已通過專線方式與雲上VPC互連的註冊叢集,請參見為註冊叢集配置通過內網訪問雲產品的路由完成配置,以確保叢集可以通過內網訪問ACK組件的鏡像地址,並打通阿里雲Prometheus監控資料上報網路鏈路。

步驟一:為ack-arms-prometheus組件配置RAM許可權

通過onectl配置

  1. 在本地安裝配置onectl。具體操作,請參見通過onectl管理註冊叢集

  2. 執行以下命令,為ack-arms-prometheus組件配置RAM許可權。

    onectl ram-user grant --addon arms-prometheus

    預期輸出:

    Ram policy ack-one-registered-cluster-policy-arms-prometheus granted to ram user ack-one-user-ce313528c3 successfully.

通過控制台配置

  1. 建立RAM使用者

  2. 建立自訂權限原則,ack-arms-prometheus組件需要的權限原則內容如下。

    {
        "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"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. 為RAM使用者授權

  4. 為RAM使用者建立AccessKey

    警告

    建議您參見AccessKey網路訪問限制策略配置網路原則,將AccessKey調用來源控制在可信的網路環境內,提升AccessKey的安全性。

  5. 使用AccessKey在註冊叢集中建立名為alibaba-addon-secret的Secret資源。

    執行以下命令,建立ack-arms-prometheus組件使用的Secret。

    kubectl create namespace arms-prom
    kubectl -n arms-prom create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'
    說明

    <your AccessKey ID><your AccessKey Secret>為上一步擷取的AccessKey資訊。

步驟二:安裝ack-arms-prometheus組件

通過onectl安裝

執行以下命令,安裝ack-arms-prometheus組件。

onectl addon install arms-prometheus

預期輸出:

Addon arms-prometheus, version **** installed.

通過控制台安裝

  1. 登入Container Service管理主控台,在左側導覽列選擇叢集列表

  2. 叢集列表頁面中,單擊目的地組群名稱,然後在左側導覽列中,選擇應用 > Helm

    Helm頁面存在arms-prometheus和arms-prom安裝記錄,請刪除對應的安裝記錄後,再按照後續操作重新接入。

  3. 在叢集管理頁左側導覽列,選擇營運管理 > 組件管理

  4. 組件管理頁面,單擊日誌與監控頁簽。

  5. 找到ack-arms-prometheus卡片,單擊右下角的安裝。然後單擊確定

安裝完成後,您可登入Prometheus控制台。進入對應叢集執行個體,查看監控資料和定義警示規則。更多資訊,請參見配置ACK Prometheus監控建立Prometheus監控警示

如何切換ack-arms-prometheus組件採集CAdvisor 10250連接埠資料

ack-arms-promethues組件預設採集CAdvisor 10255連接埠資料,如果您的註冊叢集只開啟了kubelet 10250連接埠,可以按照以下步驟切換ack-arms-promethues組件的採集連接埠。

  1. 使用以下YAML內容,在註冊叢集中部署配置ServiceMonitor。

    展開查看YAML內容

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      annotations:
        arms.prometheus.io/discovery: 'true'
      name: arms-prom-cadvisor-10250
      namespace: arms-prom
    spec:
      endpoints:
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          path: /metrics/cadvisor
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          path: /metrics/probes
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
      jobLabel: k8s-app
      namespaceSelector:
        matchNames:
          - kube-system
      selector:
        matchLabels:
          k8s-app: kubelet

    等待大約需要15s~1 min後,進行採集資料驗證。

  2. 驗證切換連接埠後的採集資料。

    1. 登入ARMS控制台

    2. 在左側導覽列選擇Prometheus監控 > 執行個體列表,進入可觀測監控 Prometheus 版的執行個體列表頁面。

    3. Prometheus監控頁面的頂部功能表列,選擇叢集所在的地區。

    4. 執行個體列表頁面,單擊目標執行個體名稱進入整合中心頁面,然後在左側導覽列單擊服務發現,單擊Targets頁簽。

      查看是否已存在arms-prom/arms-prom-cadvisor-10250採集任務,且採集任務狀態是否正常。採集資料