Helm: multiple деплой одного чарта з Chart’s dependency

Автор |  14/08/2023
 

Для покращення перформансу Grafana Loki треба встановити декілька майже однакових інстансів Memcached, див. Grafana Loki: оптимізація роботи – Recording Rules, кешування та паралельні запити.

Сам стек моніторингу деплоїться з одного Хельм-чарту, в який через dependency файлу Chart.yaml додані залежності – Promtail, Loki, etc, див. VictoriaMetrics: створення Kubernetes monitoring stack з власним Helm-чартом.

Як це зробити, щоб не встановлювати окремими Helm-релізами, а деплоїти разом зі стеком, щоб і Memcached просто додати в dependencies головного чарту?

Как варіант – через alias.

Додаємо новий чарт три рази – для кожного інстансу Memcahced, і вкузуємо їм aliaschunk-cache, results-cache та index-cache:

apiVersion: v2
name: atlas-victoriametrics
description: A Helm chart for Atlas Victoria Metrics kubernetes monitoring stack
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
...
- name: prometheus-blackbox-exporter
  version: ~8.2.0
  repository: https://prometheus-community.github.io/helm-charts
- name: memcached
  version: ~6.5.6
  repository: https://charts.bitnami.com/bitnami
  alias: chunk-cache
- name: memcached
  version: ~6.5.6
  repository: https://charts.bitnami.com/bitnami
  alias: results-cache
- name: memcached
  version: ~6.5.6
  repository: https://charts.bitnami.com/bitnami
  alias: index-cache

Обновлюємо залежності локально:

[simterm]

$ helm dependency update

[/simterm]

Деплоїмо, та перевіряємо чи з’явились Memcached Services:

[simterm]

$ kk -n dev-monitoring-ns get svc | grep cache
atlas-victoriametrics-chunk-cache                      ClusterIP   172.20.120.24    <none>        11211/TCP                    15m
atlas-victoriametrics-index-cache                      ClusterIP   172.20.75.206    <none>        11211/TCP                    15m
atlas-victoriametrics-results-cache                    ClusterIP   172.20.212.198   <none>        11211/TCP                    14m

[/simterm]

Готово.