You need to enable JavaScript to run this app.
容器服务

容器服务

复制全文
监控
使用自建 Prometheus 监控 VCI
复制全文
使用自建 Prometheus 监控 VCI

VCI 支持对接自建 Prometheus 服务对 VCI 实例进行监控。本文主要介绍在自建 Prometheus 服务中配置 VCI 监控指标采集规则的方法。

前提条件

  • VCI 实例所属的集群,已安装 vci-virtual-kubelet 组件。详细操作,请参见 安装组件
  • 已创建 VCI 实例。详细操作,请参见 创建实例

采集基础指标

VCI 实例提供 CPU、内存、网络吞吐等性能指标。详细的指标说明,请参见 支持的指标

方法一

若在集群中部署了 Prometheus Operator,可通过修改 Prometheus Operator 配置来采集 VCI 实例基础指标。

下文以通过 ServiceMonitor 配置服务发现进行指标采集为例:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: kubernetes-cadvisor
spec:
  selector:
    matchLabels:
      k8s-app: kubelet
  namespaceSelector:
    any: true
  endpoints:
  - port: https
    interval: 15s
    path: /metrics/cadvisor
    scheme: https
    tlsConfig:
      caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
      insecureSkipVerify: true
    bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
    relabelings:
    - sourceLabels: [__meta_kubernetes_node_name]
      regex: '(.+)'
      targetLabel: __metrics_path__
      replacement: /metrics/cadvisor
    - action: labelmap
      regex: '__meta_kubernetes_node_label_(.+)'

方法二

自建 Prometheus 通过访问 virtual-kubelet 获取实例指标,采集配置方法与访问原生 Kubernetes kubelet 相同。您可以通过修改开源 Prometheus 配置文件,采集 VCI 实例基础指标。开源 Prometheus 配置文件通常位于/etc/prometheus/prometheus.yml或者您自定义的配置目录下。

以 cAdvisor 指标为例, 通过标准配置文件配置采集规则的示例如下:

global:
  scrape_interval: 15s
  evaluation_interval: 15s
  
scrape_configs:
  - job_name: 'kubernetes-cadvisor'
    scheme: https
    tls_config:
      ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
      insecure_skip_verify: true
    kubernetes_sd_configs:
    - role: node
    bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    relabel_configs:
    - source_labels: [__meta_kubernetes_node_name]
      regex: (.+)
      target_label: __metrics_path__
      replacement: metrics/cadvisor
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.+)

说明

scrape_configs参数相关配置说明,请参见 Prometheus 官网文档

验证结果

您可以在自建 Prometheus 上执行如下图命令,验证采集结果:
alt

采集 GPU 指标

VCI GPU 监控使用的 GPU Exporter 兼容开源 DCGM Exporter 提供的监控指标。详细的指标说明,请参见 DCGM 支持的指标

方法一

若在集群中部署了 Prometheus Operator,可通过 Prometheus Operator 的 ServiceMonitor 或 PodMonitor 配置服务发现来采集 VCI GPU 指标。

说明

采集指标前,需在 VCI Pod 中显示声明容器暴露端口,端口号为1025。声明的示例代码片段如下:

...
    spec:
      containers:
        ports:
        - containerPort: 1025 # 在容器配置中,对容器端口进行显示声明
          name: gpu-metrics

通过 PodMonitor 进行采集的示例如下:

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: vci-gpu
spec:
  selector:
    matchLabels:
      app: gpu # 此处需修改为目标 VCI Pod 的 Label
  namespaceSelector:
    any: true
  podMetricsEndpoints:
  - port: gpu-metrics
    interval: 15s
    scheme: http
    relabelings:
    - action: labelmap
      regex: __meta_kubernetes_pod_label_(.+)

方法二

自建 Prometheus 可通过修改开源 Prometheus 配置文件,访问 VCI Pod 的1025端口进行 GPU 指标采集。开源 Prometheus 配置文件通常位于/etc/prometheus/prometheus.yml或者您自定义的配置目录下。

配置采集规则的示例如下:

global:
  scrape_interval: 15s
  evaluation_interval: 15s
  
scrape_configs:
  - job_name: 'vci-gpu'
    scheme: http
    kubernetes_sd_configs:
    - role: pod
    relabel_configs:
    - source_labels: [__meta_kubernetes_pod_ip]
      regex: (.*)
      target_label: __address__
      replacement: $1:1025
    - action: labelmap
      regex: __meta_kubernetes_pod_label_(.+)

验证结果

您可以在自建 Prometheus 上执行如下图命令,验证采集结果:
alt

最近更新时间:2024.10.09 16:44:19
这个页面对您有帮助吗?
有用
有用
无用
无用