В моем локальном кластере kubernetes развернуты микросервисы с пружинной загрузкой. Микросервисы используют реестр микрометра и прометея, но в соответствии с политикой нашей компании привод доступен на другом порту:
- 8080 для «бизнес» запросов HTTP
- 8081 / управление для привода. Итак, я могу получить доступ к
http://host:8081/manage/prometheus
и увидеть метрики при локальном запуске процесса (без kubernetes).
Теперь я новичок в Prometheus и довольно ограниченные знания в kubernetes (я Я работаю с Java опытом разработчика.
Я создал POD с моим приложением и успешно запустил его в kubernetes. Это работает, и я могу получить к нему доступ (для 8080 я создал службу для сопоставления портов), и я могу выполнять http-запросы бизнес-уровня с того же P C.
Но я не нашел примеров добавления прометея на картинке. Предполагается, что Прометей будет развернут в том же кластере kubernetes, как и другой модуль. Итак, я начал с:
FROM @docker.registry.address@/prom/prometheus:v2.15.2
COPY entrypoint.sh /
USER root
RUN chmod 755 /entrypoint.sh
ADD ./prometheus.yml /etc/prometheus/
ENTRYPOINT ["/entrypoint.sh"]
точка входа. sh выглядит так:
#!/bin/sh
echo "About to run prometheus"
/bin/prometheus --config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/prometheus \
--storage.tsdb.retention.time=3d \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.console.templates=/etc/prometheus/consoles
Мой вопрос о том, как именно я должен определить prometheus.yml
чтобы он получал метрики от моего подпружиненного загрузочного отсека (и других имеющихся у меня микросервисов, все пружинные опоры которых приводились с одинаковой настройкой привода).
Я начал с (prometheus.yml
):
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: 'prometheus'
metrics_path: /manage/prometheus
kubernetes_sd_configs:
- role: pod
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_pod_label_app]
action: keep
regex: sample-pod-app(.*)|another-pod-app(.*)
Но, видимо, это не работает, поэтому я прошу совета:
- Если у кого-то есть рабочий пример, он будет лучшим:)
- Интуитивно я понимаю, что мне нужно указать сопоставление портов для моего порта
8081
, но я точно не знаю, как - Поскольку prometheus должен работать на другом порту, я должен предоставлять службу kubernetes для порта 8081 на уровне kubernetes?
- Нужно ли определять ресурсы, относящиеся к безопасности в kubernetes?
В качестве примечания. На данный момент меня не волнуют проблемы с масштабируемостью, я думаю, что один сервер Prometheus справится с этой задачей, но мне придется добавить Grafana на картинку.