阅读 Prometheus 配置时文档和一些示例抓取配置,我发现一些带有角色service
& 角色endpoints
& 角色的kubernetes_sd_configspod
- job_name: kube-state-metrics
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- action: keep
regex: prometheus;kube-state-metrics
source_labels:
- __meta_kubernetes_namespace
- __meta_kubernetes_pod_label_component
- honor_labels: true
job_name: prometheus-pushgateway
kubernetes_sd_configs:
- role: service
relabel_configs:
- action: keep
regex: pushgateway
source_labels:
- __meta_kubernetes_service_annotation_prometheus_io_probe
- job_name: node-exporter
kubernetes_sd_configs:
- role: pod
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
source_labels:
- __address__
- __meta_kubernetes_pod_container_port_number
target_label: __address__
看起来所有这些角色都可以从实例中抓取指标,
我们什么时候应该使用端点,什么时候应该使用 pod?
编辑:我真正的问题是,如果它们都发现了抓取目标,我应该使用哪个角色(端点或 pod)?
您更喜欢什么?有例子吗?
答案1
Prometheus 中的 Kubernetes SD 有一组所谓的“角色”,它们定义了如何收集和显示指标。每个角色都有自己的一组标签,这些标签您已经从官方文档。您感兴趣的是:
service
:将查找并返回每个服务及其端口pod
:将找到 Pod 并返回其容器作为获取指标的目标endpoints
:将为集群中的每个服务从每个端点创建目标
以下是一些示例:
关于您的其他问题:
角色服务用作黑盒探测。它不会报告此服务背后有多少个后端
角色端点用于公开 Web 服务(有一个要连接的 http 端点)
pod 一般用来
基本可以。请注意,它pod role
会发现所有 pod 并将其容器公开为目标。
我还强烈建议你查看以下来源:
如果有帮助的话请告诉我。