2.9.16.3.3 Управление пакетами Kubernetes с помощью HELM
Поддерживаемые версии
Установка Helm
Helm-чарты
Репозитории
Релизы чартов
Пример работы
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Версия ПО: kubernetes-1.24.17-9, kubernetes-kubeadm-1.24.17-9, helm-3.12.3-4
Helm — инструмент для управления пакетами (чартами) в Kubernetes, который упрощает развёртывание, обновление и обслуживание сложных приложений, состоящих из множества Kubernetes-объектов. Helm можно сравнить с пакетным менеджером, таким как dnf, но адаптированным для работы с кластерами Kubernetes.
Поддерживаемые версии
|
Версия Helm |
Версии Kubernetes |
|---|---|
|
3.12.x |
1.27.x - 1.24.x |
Установка Helm
Для работы helm необходим доступ к развернутому кластеру Kubernetes. Подробную информацию о развертывании кластера Kubernetes см. в нашей инструкции «Установка kubernetes с использованием контейнерного движка containerd».
Для установки helm на master-ноде выполните команду (потребуются права администратора):
sudo dnf install helm
Убедитесь, что helm установлен, проверив версию:
helm version
Ответ команды должен иметь примерно следующий вид:
version.BuildInfo{Version:"3.12.3", GitCommit:"3a31588ad33fe3b89af5a2a54ee1d25bfe6eaa5e", GitTreeState:"clean", GoVersion:"go1.24.6"}
Helm-чарты
Чарты Helm (Helm Charts) – это пакеты helm, состоящие из файлов и шаблонов YAML, которые преобразуются в файлы манифеста Kubernetes. Чарты могут повторно использоваться любым пользователем в любой среде, что сокращает сложность и количество дубликатов.
Структура чарта helm представляет собой каталог, который содержит все необходимые компоненты для развёртывания приложений. Это позволяет упаковывать приложения в чарты, упрощая их установку, обновление и управление.
Стандартная структура чарта имеет следующий вид:
├── charts ├── Chart.yaml ├── templates │ ├── deployment.yaml │ ├── _helpers.tpl │ ├── hpa.yaml │ ├── httproute.yaml │ ├── ingress.yaml │ ├── NOTES.txt │ ├── serviceaccount.yaml │ ├── service.yaml │ └── tests │ └── test-connection.yaml └── values.yaml
Основные файлы и каталоги:
-
файл Chart.yaml – главный файл чарта, который помогает идентифицировать чарт. Файл содержит следующие метаданные: имя чарта, версия, описание, информация о зависимостях и пр. Файл является обязательным.
-
файл Values.yaml – определяет конфигурационные параметры, которые можно переопределить во время установки или обновления чарта.
-
каталог Charts/ – каталог для подчартов (зависимостей чарта). Если приложение требует другие чарты для своей работы, они размещаются здесь.
-
каталог templates/ – содержит шаблоны манифестов Kubernetes, которые используют как статические, так и динамические данные из values.yaml и Chart.yaml для генерации конечных манифестов.
Репозитории
Репозитоии – централизованные хранилища чартов, которые могут быть установлены или предоставлены для доступа другим пользователям. Helm обеспечивает поиск по репозиториям напрямую из клиента.
Существует два основных метода поиска:
- поиск через Artifact Hub;
- поиск через локальные репозитории.
Поиск через Artifact Hub
Artifact Hub – общедоступный веб-сервер, содержащий чарты из множества репозиториев. Для поиска по Artifact Hub выполните команду:
helm search hub <имя_релиза>
Поиск через локальные репозитории
Предварительно добавьте локальный репозиторий с помощью команды:
helm repo add <имя_репозитория> <URL_репозитория>
Далее обновите локальные репозитории:
helm repo update
После успешного обновления репозиториев выполните поиск:
helm search repo <имя_релиза>
Релизы чартов
Релиз – это локальный экземпляр чарта, запущенный в кластере Kubernetes. Один чарт можно установить неограниченное количество раз, создавая разные релизы.
Установка чарта из репозитория с конкретным именем релиза может быть выполнена командой вида:
helm install <имя_релиза> <репозиторий>/<название_чарта>
Обновить релиз можно с помощью команды вида:
helm upgrade <имя_релиза> --version <версия>
Для удаления релиза чарта выполните:
helm uninstall <имя_релиза>
Пример работы
В качестве примера будет развернут nginx с использованием репозитория Bitnami.
Bitnami отказалась от традиционного репозитория Helm и перешла на новый метод распространения в виде OCI-пакетов, которые хранятся в Docker Hub.
Для установки nginx на master-ноде выполните команду:
helm install nginx oci://registry-1.docker.io/bitnamicharts/nginx
При успешной установке вывод команды будет иметь примерно следующий вид:
Pulled: registry-1.docker.io/bitnamicharts/nginx:22.4.0 Digest: sha256:a502a6366d1051fb7a2b6e2d3c17d4cabedabf5c7115dabab6335a69aa460ad4 NAME: nginx LAST DEPLOYED: Wed Dec 24 09:52:25 2025 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: CHART NAME: nginx CHART VERSION: 22.4.0 APP VERSION: 1.29.4
Для доступа к веб-интерфейсу необходимо определить ноду, на которой установлен nginx, с помощью команды:
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-75bf847747-pgmjn 1/1 Running 0 9m36s 10.244.171.65 worker <none> <none>
А также определить порт, по которому доступен nginx:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 31m
nginx LoadBalancer 10.101.76.36 <pending> 80:30542/TCP,443:32164/TCP 10m
После этого откройте веб-браузер и в адресной строке введите адрес вида http://<IP-адрес_ноды>:<порт>.
Дата последнего изменения: 12.01.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.