Prometheus - Kubernetes 中角色端点和角色 pod 的服务发现用例

Prometheus - Kubernetes 中角色端点和角色 pod 的服务发现用例

阅读 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:将为集群中的每个服务从每个端点创建目标

以下是一些示例:

关于您的其他问题:

  1. 角色服务用作黑盒探测。它不会报告此服务背后有多少个后端

  2. 角色端点用于公开 Web 服务(有一个要连接的 http 端点)

  3. pod 一般用来

基本可以。请注意,它pod role会发现所有 pod 并将其容器公开为目标。

我还强烈建议你查看以下来源:

如果有帮助的话请告诉我。

相关内容