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