Helm 3 в Kubernetes: установка, настройка чартов и WordPress

14.10.2026
0
6
---

Helm 3 — популярный менеджер пакетов для Kubernetes, который упрощает установку, настройку и обновление приложений в кластере. С его помощью можно развертывать сложные сервисы, управлять конфигурацией через YAML-файлы и повторно использовать готовые шаблоны Kubernetes-манифестов.

В этой статье рассмотрим, как установить Helm 3, подключить репозитории чартов, найти нужное приложение и развернуть его в Kubernetes. Также разберем редактирование Helm-чартов, настройку Ingress и практический пример установки WordPress.

Содержание

  1. Цели статьи
  2. Что такое Helm и зачем он нужен
  3. Установка Helm 3 в Kubernetes
  4. Установка приложений через Helm
  5. Редактирование Helm-чартов
  6. Установка WordPress в Kubernetes
  7. Заключение

1. Цели статьи

После изучения материала вы узнаете:

  • Что такое Helm и как он упрощает управление приложениями в Kubernetes.
  • Как установить Helm 3 в Linux и проверить его работоспособность.
  • Как подключать репозитории и искать готовые Helm-чарты.
  • Как устанавливать, обновлять и удалять приложения с помощью Helm.
  • Как изменять параметры чартов для настройки приложений под собственную инфраструктуру.
  • Как развернуть WordPress в Kubernetes и организовать доступ к приложению.

Примеры ориентированы на Linux-систему с установленными kubectl и работающим кластером Kubernetes.

2. Что такое Helm и зачем он нужен

При работе с Kubernetes даже относительно простое приложение может потребовать нескольких YAML-манифестов. Например, для запуска веб-сервиса могут понадобиться Deployment, Service, ConfigMap, Secret, PersistentVolumeClaim и Ingress.

При увеличении количества приложений становится сложнее поддерживать конфигурацию, повторять развертывание в разных окружениях и отслеживать изменения.

Helm решает эту задачу, выступая в роли менеджера пакетов для Kubernetes. Он позволяет объединять шаблоны Kubernetes-манифестов и параметры приложения в единый пакет — Helm chart.

С помощью Helm можно:

  • Устанавливать приложения из готовых чартов.
  • Настраивать приложения через файлы values.yaml.
  • Обновлять существующие релизы.
  • Откатываться к предыдущим ревизиям релиза.
  • Управлять зависимостями между чартами.
  • Использовать одинаковые шаблоны для тестовой и production-среды.

Основные понятия Helm

Chart — пакет с шаблонами Kubernetes-ресурсов и настройками приложения.

Repository — репозиторий, в котором публикуются Helm-чарты.

Release — установленный экземпляр чарта в кластере Kubernetes.

Values — параметры, с помощью которых настраивается развертывание приложения.

Например, один и тот же чарт можно использовать для запуска приложения в нескольких окружениях, меняя количество реплик, настройки Ingress, ресурсы контейнеров и другие параметры без ручного редактирования каждого Kubernetes-манифеста.

В Helm 3 клиентская часть работает без отдельного серверного компонента Tiller, который использовался в Helm 2. Это упрощает архитектуру и управление доступом к Kubernetes API.

3. Установка Helm 3 в Linux

Установить Helm можно с помощью пакетного менеджера, официального установочного скрипта или готового бинарного файла. Для Linux удобен вариант с официальным архивом.

Сначала скачайте актуальную стабильную версию Helm 3 с официальной страницы загрузок:

https://github.com/helm/helm/releases

Пример установки для Linux x86-64:

curl -LO https://get.helm.sh/helm-v3.16.4-linux-amd64.tar.gztar -xzf helm-v3.16.4-linux-amd64.tar.gzsudo install linux-amd64/helm /usr/local/bin/helm

Версия в команде приведена для примера. Для новой установки используйте актуальный поддерживаемый выпуск Helm 3, если он соответствует требованиям вашей инфраструктуры.

Проверим установленную версию:

helm version

Также убедимся, что kubectl подключен к нужному кластеру:

kubectl cluster-infokubectl get nodes

Если команды выполняются без ошибок, можно переходить к работе с Helm-чартами.

Подключение репозитория Helm

Helm позволяет получать приложения из репозиториев чартов. Важно учитывать, что старый репозиторий stable, ранее размещавшийся по адресу kubernetes-charts.storage.googleapis.com, больше не подходит для новых установок.

В качестве примера используем репозиторий Bitnami:

helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update

Посмотреть подключенные репозитории можно командой:

helm repo list

Найти доступные чарты:

helm search repo wordpress

Для поиска по каталогу Artifact Hub используйте:

helm search hub wordpress

При выборе чарта проверяйте его совместимость с версией Kubernetes, дату обновления, требования к ресурсам, настройки безопасности и доступность необходимых образов контейнеров.

4. Установка приложений через Helm 3

Рассмотрим основные команды, необходимые для установки и управления приложениями в Kubernetes.

Установка приложения

Перед установкой создадим отдельное пространство имен:

kubectl create namespace myapp

После выбора подходящего чарта приложение устанавливается командой:

helm install my-release bitnami/wordpress \  --namespace myapp

Здесь my-release — имя релиза, а bitnami/wordpress — имя чарта из подключенного репозитория.

Перед запуском приложения рекомендуется изучить доступные параметры:

helm show values bitnami/wordpresshelm show chart bitnami/wordpress

Чтобы посмотреть шаблоны Kubernetes-манифестов, которые будут сформированы чартом, выполните:

helm template my-release bitnami/wordpress \  --namespace myapp

Это позволяет предварительно проверить конфигурацию без установки ресурсов в кластер.

Проверка состояния приложения

Посмотреть установленные релизы:

helm list -A

Проверить ресурсы в пространстве имен:

kubectl get all -n myappkubectl get pods -n myapp

Для наблюдения за созданием подов используйте:

kubectl get pods -n myapp -w

Если приложение не запускается, проверьте состояние подов, события и логи:

kubectl describe pod <pod-name> -n myappkubectl logs <pod-name> -n myappkubectl get events -n myapp --sort-by=.metadata.creationTimestamp

Обновление приложения

После изменения параметров или подготовки новой конфигурации релиз можно обновить:

helm upgrade my-release bitnami/wordpress \  --namespace myapp

Чтобы установить приложение или обновить его, если релиз уже существует, можно использовать команду:

helm upgrade --install my-release bitnami/wordpress \  --namespace myapp

Если требуется откатить релиз, сначала посмотрите историю:

helm history my-release -n myapp

Затем выберите нужную ревизию:

helm rollback my-release 1 -n myapp

Число 1 здесь обозначает номер ревизии, к которой нужно вернуться.

Удаление приложения

Для удаления релиза выполните:

helm uninstall my-release -n myapp

Перед удалением приложений с постоянным хранилищем проверьте, какие PersistentVolumeClaim и PersistentVolume используются. Удаление релиза не следует считать гарантией удаления или сохранности данных: результат зависит от конфигурации чарта и политики хранения.

5. Редактирование Helm-чартов

Готовые чарты не всегда полностью соответствуют требованиям конкретной инфраструктуры. Например, может понадобиться включить Ingress, изменить количество реплик, настроить ресурсы контейнеров или активировать необходимые механизмы контроля доступа.

Для настройки обычно достаточно изменить параметры values.yaml, не редактируя шаблоны Kubernetes напрямую.

Получение параметров чарта

Посмотрим доступные настройки выбранного приложения:

helm show values bitnami/wordpress > wordpress-values.yaml

Откройте файл и найдите параметры, отвечающие за нужные функции. Их названия и структура зависят от конкретного чарта и его версии.

Например, фрагмент конфигурации может выглядеть так:

replicaCount: 2

Это лишь пример параметра: перед использованием необходимо проверить, поддерживает ли его выбранный чарт.

Для просмотра фактически примененных значений установленного релиза используйте:

helm get values my-release -n myapp

Для получения всех вычисленных значений:

helm get values my-release -n myapp --all

Настройка Ingress

Ingress позволяет организовать HTTP- и HTTPS-доступ к приложениям через настроенный Ingress Controller. Для работы этого механизма в кластере должен быть установлен и настроен соответствующий контроллер.

Пример типового фрагмента настроек чарта:

ingress:  enabled: true  hostname: app.example.com

Этот фрагмент подходит только для чартов, в которых предусмотрены именно такие параметры. Перед применением сверьтесь с helm show values и документацией выбранного приложения.

После изменения конфигурации выполните обновление релиза:

helm upgrade --install my-release bitnami/wordpress \  --namespace myapp \  -f wordpress-values.yaml

Проверьте созданные ресурсы:

kubectl get ingress -n myappkubectl get svc -n myapp

Проверка конфигурации перед установкой

Чтобы увидеть итоговые манифесты, сформированные из чарта и файла настроек, используйте:

helm template my-release bitnami/wordpress \  --namespace myapp \  -f wordpress-values.yaml

Для дополнительной проверки установки можно выполнить пробный запуск:

helm upgrade --install my-release bitnami/wordpress \  --namespace myapp \  -f wordpress-values.yaml \  --dry-run

Не храните пароли, токены и другие секреты в общедоступных файлах конфигурации или репозиториях исходного кода.

6. Установка WordPress в Kubernetes

WordPress — популярная система управления содержимым сайта, которую можно развернуть в Kubernetes с помощью Helm. Такой подход подходит для учебных стендов, тестирования и инфраструктур, в которых уже используются контейнеры и оркестрация.

Для работы WordPress обычно необходимы:

  • Контейнер приложения WordPress.
  • База данных MySQL или MariaDB.
  • Постоянное хранилище для файлов, если оно требуется конфигурацией.
  • Сервис Kubernetes для внутреннего доступа к приложению.
  • При необходимости — Ingress и TLS-сертификат для публикации сайта.

Шаг 1. Подготовка пространства имен

Создадим отдельное пространство имен:

kubectl create namespace wordpress

Шаг 2. Подключение репозитория

Если репозиторий Bitnami еще не добавлен, подключите его:

helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update

Посмотрим доступные настройки чарта WordPress:

helm show values bitnami/wordpress

Перед установкой обязательно проверьте актуальность чарта, доступность образов и совместимость с вашим кластером. В зависимости от версии и текущего состояния репозитория может потребоваться использовать другую поддерживаемую сборку чарта.

Шаг 3. Настройка параметров

Создадим файл wordpress-values.yaml. Пример ниже показывает общую структуру конфигурации; названия параметров необходимо сверить с версией используемого чарта.

wordpressUsername: adminservice:  type: ClusterIPingress:  enabled: falsepersistence:  enabled: true

Для реального развертывания также необходимо безопасно задать пароли WordPress и базы данных, проверить настройки PersistentVolume и определить, как будут храниться пользовательские файлы.

Не используйте примерные или заранее известные пароли в рабочем окружении. Для секретов предпочтительно использовать поддерживаемый вашей инфраструктурой механизм управления секретами.

Шаг 4. Установка WordPress

Установим приложение:

helm upgrade --install wordpress bitnami/wordpress \  --namespace wordpress \  -f wordpress-values.yaml

Посмотрим состояние ресурсов:

kubectl get pods -n wordpresskubectl get svc -n wordpresskubectl get pvc -n wordpress

Дождитесь, пока необходимые поды перейдут в состояние Running и будут готовы принимать запросы. Если запуск задерживается, проверьте события Kubernetes, состояние хранилища и логи контейнеров.

Шаг 5. Доступ к WordPress

Для тестового доступа можно использовать проброс порта:

kubectl port-forward \  -n wordpress \  svc/wordpress 8080:80

После запуска команды откройте в браузере:

http://127.0.0.1:8080

Имя сервиса и порт необходимо сверить с выводом kubectl get svc -n wordpress, поскольку они могут различаться в зависимости от версии чарта.

Для постоянного доступа из сети настройте Ingress или внешний Service в соответствии с архитектурой кластера. Для публичного сайта рекомендуется использовать HTTPS, надежные пароли, резервное копирование базы данных и пользовательских файлов, а также регулярно проверять обновления приложения.

7. Заключение

Helm 3 значительно упрощает развертывание приложений в Kubernetes. Вместо ручного создания множества YAML-манифестов можно использовать готовые чарты, централизованно управлять параметрами и повторять установку в разных окружениях.

В статье мы рассмотрели установку Helm 3 в Linux, подключение репозиториев, поиск чартов, управление релизами и редактирование конфигурации через values.yaml. На примере WordPress разобрали основные этапы развертывания приложения и проверки его работоспособности.

Для дальнейшего изучения рекомендуется освоить создание собственных Helm-чартов, работу с зависимостями, управление секретами, проверку шаблонов и автоматизацию развертывания через CI/CD.

Helm — полезный инструмент для системных администраторов, DevOps-инженеров и разработчиков, которые хотят сделать управление приложениями в Kubernetes более предсказуемым, воспроизводимым и удобным.

Понравиласть статья? Жми лайк или расскажи своим друзьям!
Теги к новости:
Kubernetes, Helm, WordPress
Комментарии
Добавить комментарий
Добавление комментария
Ваше Имя:
Ваш E-Mail:
Это код:
Кликните на изображение чтобы обновить код, если он неразборчив
Введите сюда: