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
这个页面对您有帮助吗?
有用
有用
无用
无用