TGViewer
DevOps не горит DevOps не горит @devops_not_burn · 505 subscribers
Post #62 684
Коллеги, всем привет!=)
Задумался я тут о том, что пора превратить нашу Grafana в Grafana HA (это не ha-ha-ha classic, а Grafana High Abailability)
Кажется, что все достаточно просто, Grafana живет в k8s, проставишь в чарте
replicas: 3
и дело к стороне
И сразу же начинают всплывать определенные нюансы
Основной нюанс заключается в том что наша Grafana иногда отправляет алерты которые настраивали команды разработки и если просто увеличить количество реплик с ооооочень большой вероятностью мы получим х3 алертов, что не очень весело
Отправил читать документацию, HA режим для алертов доступен и может работать как с "отдельно стоящим" Redis, так и с самой Grafana
Вариант когда инстансы Grafana синхронизируются между собой, показался более привлекательным, так как нет необходимости в доп компоненте
Конфиг для Grafana выглядит следующий образом

grafana.ini:
unified_alerting:
enabled: true
ha_listen_address: "${POD_IP}:9094"
ha_peers: "grafana-alerting.grafana:9094"
ha_advertise_address: "${POD_IP}:9094"
ha_peer_timeout: 15s
ha_reconnect_timeout: 2m

Так же нам нужен сервис, что бы Grafana`ы могли найти друг друга

apiVersion: v1
kind: Service
metadata:
name: grafana-alerting
namespace: grafana
labels:
app.kubernetes.io/name: grafana-alerting
app.kubernetes.io/part-of: grafana
spec:
type: ClusterIP
clusterIP: 'None'
ports:
- port: 9094
selector:
app.kubernetes.io/name: grafana

Благодаря этому мы получаем Grafana HA, что добавляет нам "выживаемости" в случае внештатных ситуаций с инфрой
Ну и напоследок, как сказать Grafana, что бы она расползалась по разным нодам и зонам кластера

affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 100
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- grafana
topologyKey: topology.kubernetes.io/zone
- weight: 99
podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- grafana
topologyKey: topology.kubernetes.io/hostname

PS - для Grafana у нас поднят отдельно стоящий кластер PG
  • 🔥 9
  • 👍 6
  • ❤ 2
  • ⚡ 1
  • 🤔 1
More from @devops_not_burn
  1. Sep 22, 2026Коллеги, всем привет! =) Открываю рубрику «Мама, твой сын вайб-кодер!» =) У меня давно в г…
  2. Sep 18, 2026Коллеги, всем привет! =) Сегодня продолжаем записывать наш DevOops Podcast, внезапно! =) В…
  3. Sep 14, 2026DevOops 2026 Коллеги, всем привет! =) Возможно, вы знаете, что я член программного комитет…
  4. Sep 11, 2026Обновление k8s 1.33⇒1.34 Коллеги, всем привет! =) По старой доброй традиции раз в квартал…
  5. Aug 26, 2026Коллеги, всем привет! =) На подходе очередной выпуск DevOops Podcast, к слову, пятый по сч…
  6. Aug 19, 2026Коллеги, всем привет! =) В продолжение темы про обновление Harbor и про хранение артефакто…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →