EMZETT.
Увійти

Helm: пакети для Kubernetes

Коротко: Менеджер пакетів для Kubernetes, що об’єднує безліч пов’язаних YAML-файлів як «chart» і встановлює їх із налаштовуваними значеннями.

Докладніше: Застосунок у Kubernetes часто складається з багатьох ресурсів: deployment, service, config map, ingress та інших. Helm об’єднує їх у chart. Командою helm install chart розгортається, а значення на кшталт версії образу чи кількості реплік легко налаштовуються.

Подробиці

Терміни

  • Chart: пакет із шаблонами та значеннями за замовчуванням (values.yaml).
  • Release: встановлений екземпляр chart з іменем.
  • Репозиторій (repository): колекція опублікованих chart (наприклад, для баз даних чи моніторингу).
  • Значення (values): налаштування, що заповнюють шаблони.

Типові команди

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-db bitnami/postgresql --set auth.postgresPassword=secret
helm upgrade my-db bitnami/postgresql -f my-values.yaml
helm rollback my-db 1
helm uninstall my-db

upgrade змінює наявний release, rollback відновлює ранішу версію. У реальній експлуатації паролі не мають бути в командному рядку.

Шаблони

Шаблони використовують мову шаблонів Go. Уривок:

replicas: {{ .Values.replicaCount }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"

Так один chart з різними значеннями стає варіантом для тестування та варіантом для production.

Альтернативи

Kustomize (вбудований у kubectl) працює без мови шаблонів, за допомогою накладок (overlay) на YAML-файли. Багато команд поєднують обидва або використовують інструменти GitOps, які самі застосовують chart Helm. Chart зі сторонніх джерел варто перевіряти перед використанням, бо вони можуть створювати права в кластері.

Див. також: Основи Kubernetes, GitOps, Інфраструктура як код