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 服务发现没有变化。
我让普罗米修斯作为 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 服务发现没有变化。