Масштабирование показателей куба-состояния в операторе прометея

В операторе Prometheus я хочу увеличить kube-state-metrics реплик до 2. Если я увеличу количество реплик, а роль обнаружения службы по умолчанию - endpoints, Prometheus будет очищать каждый модуль, поэтому я буду очищать все метрики дважды, что вызовет много- ко многим вопросам, и это пустая трата.

Проблема, с которой я столкнулся, заключалась в отказе узла, на котором, среди прочего, находился kube-state-metrics. Я не знал, что происходит в моем кластере, пока не был запланирован новый модуль. Для меня важно иметь kube-state-metrics избыточное количество.

Как я могу настроить роль kubernetes_sd_configs для kube-state-metrics на service, чтобы служба использовалась как балансировщик нагрузки, а не каждый модуль в службе? ИЛИ - как я могу масштабировать kube-state-metrics pod'ов (без сегментирования)?

Текущая конфигурация:

- job_name: monitoring/prometheus-operator-kube-state-metrics/0
  kubernetes_sd_configs:
  - role: endpoints

Что я хочу:

- job_name: monitoring/prometheus-operator-kube-state-metrics/0
  kubernetes_sd_configs:
  - role: service

person bazron    schedule 18.10.2020    source источник


Ответы (1)


Да, ты можешь.

Пока ваша работа, которая очищает endpoints, заключается в фильтрации сервисов, которые включают аннотацию prometheus.io/scrape: "true", вы можете использовать другую аннотацию для очистки самих сервисов.

Если у вас есть такая работа, которая очищает каждую конечную точку отдельно:

- job_name: kubernetes-endpoints                                                                                  
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  kubernetes_sd_configs:
    - role: endpoints
  relabel_configs:
    - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
      action: keep
      regex: "true"

Вы можете добавить другое задание, которое будет очищать сервис только как конечную точку:

- job_name: kubernetes-services
  params:
    module: [http_2xx]
  kubernetes_sd_configs:
    - role: service
  relabel_configs:
    - source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe]
      action: keep
      regex: "true"

Затем просто убедитесь, что вы установили правильные аннотации для службы, например:

apiVersion: v1                
kind: Service                                                                                                     
metadata:                                  
  annotations:
    prometheus.io/path: /metrics
    prometheus.io/probe: "true"
person Evgeny    schedule 10.11.2020