
В настоящее время я использую kube-prometheus-stack для мониторинга нескольких кластеров kubernetes. Каждый кластер имеет собственное развертывание kube-prometheus-stack, однако в настоящее время только один кластер (a) имеет включенный alertmanager. Кластер (a) также скрейпит все другие кластеры /конечную точку federate, чтобы получить некоторые показатели работоспособности и сделать оповещения на их основе.
Чтобы исключить единую точку отказа в случае выхода из строя кластера (a), я хочу иметь второй кластер (b) с включенными оповещениями, работающий в режиме высокой доступности вместе с кластером (a).
Какой наилучший способ этого добиться?
Относительно Прометея:
Сделайте оба (a) и (b) Prometheus абсолютно одинаковой конфигурации, кроме, может быть, метки для идентификации. Они должны содержать те же данные и запускать те же оповещения для (a) и (b) alertmanagers.
Относительно менеджеров оповещений:
Заставить (a) и (b) Alertmanagers общаться друг с другом для дедупликации оповещений. Этого можно добиться, установив
alertmanagerSpec:
additionalPeers: []
Относительно Графаны:
Возможно ли вообще сделать Grafana высокодоступной в таком виде развертывания? Я знаю изздесьчто можно настроить Grafana для высокой доступности, разрешив обоим экземплярам использовать одну и ту же базу данных, но как это сделать в моей настройке?
Буду рад, если кто-нибудь сможет дать отзыв об этой идее...