Как устранить ошибку Прометея «отсутствует роль (одна из: модуль, служба, конечные точки, узел)» - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь применить kubernetes к моему кластеру миникубов в первый раз.У меня ограниченный опыт управления кластерами, и я никогда раньше не работал с Prometheus, поэтому извиняюсь за ошибки noob.

Я запускаю следующие команды:

docker build -t my-prometheus .
docker run -p 9090:9090 my-prometheus

вот мой yaml:

global:
  scrape_interval: 15s
  external_labels:
    monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'kubernetes-apiservers'
  scheme: http
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
  kubernetes_sd_configs:
  - role: endpoints
  - api_server: localhost:30000

Я запустил это через YAMLlint и понял, что оно действительно.Тем не менее, я получаю следующую ошибку при запуске второй команды Docker:

level=error ts=2018-09-18T21:49:34.365671918Z caller=main.go:617 err="error 
loading config from \"/etc/prometheus/prometheus.yml\": couldn't load 
configuration (--config.file=\"/etc/prometheus/prometheus.yml\"): parsing 
YAML file /etc/prometheus/prometheus.yml: role missing (one of: pod, 
service, endpoints, node)"

Однако, вы можете видеть, что я указал мой - role: endpoints в моем kubernetes_sd_configs.

Может кто-нибудьпомоги мне в этом

1 Ответ

0 голосов
/ 19 сентября 2018

kubernetes_sd_configs - это список конфигов, стилизованный как последовательность блоков в терминах YAML.

Теперь ваш список конфигов выглядит следующим образом:

- role: endpoints
- api_server: localhost:3000

Итак, вы определяетедва конфига, и только первый из них играет роль.Вот почему вы получаете ошибку.Скорее всего, вы хотите создать только один конфиг с настроенными role и api_server.Отбросьте второй -, чтобы api_server принадлежал первому конфигу:

- role: endpoints
  api_server: localhost:3000
...