容器服务 karpenter 组件指标采集

如何基于 Prometheus,采集 karpenter 组件指标配置。关于 Karpenter 的具体指标含义。

相关产品
容器服务 产品页,含版本规格、价格与购买入口。

一、前提条件

在开始配置前,请确保满足以下条件:

·用户 clustermonitor 组件版本大于等于 1.4.0。

·已开通 Prometheus 监控服务并关联实例。操作详情请参见 腾讯云 Prometheus 一键关联监控容器服务。

·如使用自建 Prometheus,请参见 用户自建 Prometheus 采集控制面监控。

二、采集方式

Karpenter 指标采集支持以下两种方式,你可根据所使用的 Prometheus 部署形态选择对应方案:

三、通过 ServiceMonitor 进行采集

适用场景:该方式适用于集群已经安装了 ServiceMonitor CRD 的场景。

apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata: name: karpenter-exporter namespace: kube-systemspec: endpoints: – interval: 15s params: component: – karpenter path: /master/metrics port: http-metrics relabelings: – action: replace replacement: karpenter targetLabel: job namespaceSelector: {} selector: matchLabels: label_qcloud_app: cluster-monitor label_qcloud_service: master-metrics-service

四、通过 scrape_configs 配置采集

scrape_configs:- job_name: karpenter honor_labels: true honor_timestamps: true params: component: – karpenter scrape_interval: 30s scrape_timeout: 10s metrics_path: /master/metrics scheme: http follow_redirects: true enable_http2: true relabel_configs: – source_labels: [job] separator: ; regex: (.*) target_label: __tmp_prometheus_job_name replacement: $1 action: replace – source_labels: [__meta_kubernetes_service_label_app_kubernetes_io_managed_by, __meta_kubernetes_service_labelpresent_app_kubernetes_io_managed_by] separator: ; regex: (Helm);true replacement: $1 action: keep – source_labels: [__meta_kubernetes_service_label_label_qcloud_app, __meta_kubernetes_service_labelpresent_label_qcloud_app] separator: ; regex: (cluster-monitor);true replacement: $1 action: keep – source_labels: [__meta_kubernetes_service_label_label_qcloud_service, __meta_kubernetes_service_labelpresent_label_qcloud_service] separator: ; regex: (master-metrics-service);true replacement: $1 action: keep – source_labels: [__meta_kubernetes_endpoint_port_name] separator: ; regex: http-metrics replacement: $1 action: keep – source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name] separator: ; regex: Node;(.*) target_label: node replacement: ${1} action: replace – source_labels: [__meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name] separator: ; regex: Pod;(.*) target_label: pod replacement: ${1} action: replace – source_labels: [__meta_kubernetes_namespace] separator: ; regex: (.*) target_label: namespace replacement: $1 action: replace – source_labels: [__meta_kubernetes_service_name] separator: ; regex: (.*) target_label: service replacement: $1 action: replace – separator: ; regex: (.*) target_label: endpoint replacement: http-metrics action: replace metric_relabel_configs: – source_labels: [pod] separator: ; regex: (.*) target_label: instance replacement: $1 action: replace kubernetes_sd_configs: – role: endpoints kubeconfig_file: "" follow_redirects: true enable_http2: true namespaces: own_namespace: false names: – kube-system

五、指标验证

1. 登录自建的 Prometheus 控制台,切换到 Graph 页面。

2. 输入 up{job="karpenter"},查看是否全部控制面组件数据显示正常。

预期输出如下:

3. 输入以下指标,查看是否可以正常显示。

karpenter_nodes_allocatable{job="karpenter"}

预期接入如下:

4. 如未能采集到指标,请检查:

4.1 cluster-monitor 组件版本是否大于 1.4.0。

4.2 集群是否已经安装 karpenter 组件。

4.3 ServiceMonitor 或 scrape_configs 中的 selector/relabel 规则是否匹配实际 Service 标签。

赞 (0)
上一篇 4天前
下一篇 4天前