Prometheus 配置仅适用于 1 个版本

Prometheus config working with only 1 version

我让普罗米修斯作为 docker 图像工作。我的来源是:

 spec:
      containers:
      - name: prometheus
        image: quay.io/coreos/prometheus

适用于此版本 Prometheus 的配置是:

global:
  scrape_interval: 5s
scrape_configs:

- job_name: 'kubernetes_apiserver'
  tls_config:
    insecure_skip_verify: true
  kubernetes_sd_configs:
  - api_servers:
    - http://172.29.219.102:8080
    role: apiserver

  relabel_configs:
  - source_labels: [__meta_kubernetes_role]
    action: keep
    regex: (?:apiserver)


- job_name: 'docker_containers'
  metrics_path: '/metrics'
  tls_config:
    insecure_skip_verify: true
  static_configs:
     - targets:
       - 172.29.219.103:4194
       - 172.29.219.104:4194
       - 172.29.219.105:4194

- job_name: 'kubernetes_pods'
  tls_config:
    insecure_skip_verify: true
  kubernetes_sd_configs:
  - api_servers:
    - http://172.29.219.102:8080
    role: pod
  relabel_configs:
    - source_labels: [__meta_kubernetes_pod_name]
      action: replace
      target_label: pod_name
    - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
      action: replace
      target_label: __metrics_path__
      regex: (.+)

现在我下载了最新版本的 Prometheus (v2.0.0)(VM 上的独立部署,而不是 docker 映像),当我尝试在该版本中启动相同的配置时,我得到以下信息错误。

caller=main.go:356 msg="Error loading config" err="couldn't load configuration (--config.file=/etc/prometheus-2.0.0.linux-amd64/prometheus.yml): Unknown... role \"apiserver\""

有谁知道为什么一种配置与 Prometheus 的一个版本兼容,而另一个版本不兼容?

1.x 到 2.0 是一个相当大的颠簸,您应该期待一些向后不兼容的更改。

您可以在 migration guide 中找到有关 breaking/important 更改的详细信息。

kubernetes_sd_configs 的详细信息可用于 2.0 and 1.8

此外,请注意 kubernetes_sd_configs 部分中的警告,它几乎说明了即使在次要版本之间也可能发生更改。

Kubernetes SD is in beta: breaking changes to configuration are still likely in future releases.

删除 apiserver 角色是在 1.3.0 中,来自发布电子邮件:

the apiserver role was dropped as it was just a static configuration of the provided API server. Instead, the generically available kubernetes service should be used in the endpoint discovery

2.0 的 kubernetes 服务发现没有变化。