You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
集群观测
使用自建 Prometheus 采集控制面组件指标
复制全文
下载 pdf
使用自建 Prometheus 采集控制面组件指标
容器服务集群对外透出了控制面组件的监控指标,允许您使用自建 Prometheus 采集并搭建集群控制面监控大盘,实现与自建监控系统的集成。本文介绍如何开启集群的控制面组件指标采集。
使用限制
  • 集群 Kubernetes 版本要求如下。如集群版本过低,请先升级版本。详情请参见 升级集群
  • 当前仅支持采集集群控制面中 kube-apiserver、etcd、kube-scheduler、kube-controller-manager 和 cloud-controller-manager 托管组件的指标,暂不支持采集其他托管组件的指标。相关组件指标,请参见 容器服务指标
前提条件
  • 自建 Prometheus 支持部署在待监控的集群内,也可以部署在集群外。
  • 当自建 Prometheus 部署在待监控集群外部时,请保证其能够访问容器服务集群的 API Server,并且拥有/metrics的读权限。
操作步骤
步骤一:开启控制面指标采集
  1. 在顶部导航栏,选择您业务所在地域。
  1. 在左侧导航栏单击 集群,单击目标集群名称,进入集群管理控制台。
  1. 在左侧导航栏中,选择 运维配置,并在 自定义指标采集 配置中,开启 管控面组件指标采集
步骤二:配置采集规则
使用自建 Prometheus 采集集群控制面组件指标前,需要在 Prometheus 的配置文件prometheus.yaml中,配置控制面组件的指标采集 Job。示例代码如下:
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'custom-prometheus-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: api-server-demo
......
- job_name: etcd-demo
......
- job_name: scheduler-demo
......
集群内部监控
如果您的自建 Prometheus 部署在待监控集群内部,您可以参考如下采集规则代码示例,完成控制面组件的数据采集。
APIServer
ETCD
Kube-Scheduler
Kube-Controller-Manager
Cloud-Controller-Manager
采集规则代码示例,如下所示:
- job_name: api-server-demo
params:
job: ["apiserver"]
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- action: keep
regex: default;kubernetes;https
source_labels:
- __meta_kubernetes_namespace
- __meta_kubernetes_service_name
- __meta_kubernetes_endpoint_port_name
scheme: https
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: false
集群外部监控
如果自建 Prometheus 部署在待监控集群外部,则无法像在集群内那样自动挂载 ServiceAccount 凭证和访问 Kubernetes 内部服务。配置方法如下:
  1. 手动指定容器服务集群的 APIServer 地址,允许外部 Prometheus 能够正确连接集群。
  1. 手动提供认证凭证(CA 证书 + Bearer Token),通过 Kubernetes API 的权限校验。
  1. 基于 Node 进行服务发现,自动获取集群所有 Node 节点的地址,后续采集相关监控指标。
配置示例代码如下:
- job_name: 'external-cluster-monitor-job'
scheme: https
tls_config:
ca_file: /etc/prometheus/kubernetes-ca.crt
bearer_token: '<ServiceAccount bearer_token>'
kubernetes_sd_configs:
- api_server: 'https://<APIServer URL>'
role: node
tls_config:
ca_file: /etc/prometheus/kubernetes-ca.crt
bearer_token: '<ServiceAccount bearer_token>'
结果验证
  1. 登录自建 Prometheus 控制台,切换到 Graph 页面。
  1. 输入up命令,查看指定的采集任务是否正常。
  • 预期结果如下,以 APIServer 观测任务为例,up{instance="xxx.xxx.xxx.xxx:6443", job="api-server-demo"}表示对应采集任务,其值为1时,表示该任务工作正常。
  1. 输入以下指标,查看是否可以正常显示。
  • apiserver_request_total{job="api-server-demo"}
  • 预期结果如下,如果能正常查询到指标和数据,表明自建 Prometheus 可以正常采集到集群核心组件的监控指标。
最近更新时间:2026.04.30 15:29:20
这个页面对您有帮助吗?
有用
有用
无用
无用