我让Prometheus作为码头图像工作。我的来源是:
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兼容而不是另一个版本?
答案 0 :(得分:1)
1.x到2.0是一个相当大的障碍,你应该期待一些向后兼容的变化。
您可以在migration guide中找到有关中断/重要更改的详细信息。
2.0和1.8可以使用kubernetes_sd_configs
的详细信息。
另外,请注意kubernetes_sd_configs部分中的警告,它几乎说明即使在次要版本之间也可能发生更改。
Kubernetes SD处于测试阶段:对配置的改变仍然存在 可能在将来的版本中。
答案 1 :(得分:0)
从发布电子邮件中删除apiserver
角色的回溯率为1.3.0
删除了apiserver角色,因为它只是提供的API服务器的静态配置。相反,一般来说 应在端点发现中使用可用的kubernetes服务
2.0版的kubernetes服务发现没有变化。