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, Інфраструктура як код