3.9.16.3.3 Управление пакетами Kubernetes с помощью HELM
Поддерживаемые версии
Установка Helm
Helm-чарты
Репозитории
Релизы чартов
Пример работы
Окружение
- Версия ОС: 8
- Конфигурация ОС: Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Версия ПО: kubernetes1.36-1.36.2-1, kubernetes1.36-kubeadm-1.36.2-1, helm-4.2.0-1
Helm — инструмент для управления пакетами (чартами) в Kubernetes, который упрощает развёртывание, обновление и обслуживание сложных приложений, состоящих из множества Kubernetes-объектов. Helm можно сравнить с пакетным менеджером, таким как dnf, но адаптированным для работы с кластерами Kubernetes.
Поддерживаемые версии
|
Версия Helm |
Версии Kubernetes |
|---|---|
|
4.2.x |
1.36.x - 1.33.x |
|
4.1.x |
1.35.x - 1.32.x |
|
4.0.x |
1.34.x - 1.31.x |
|
3.20.x |
1.35.x - 1.32.x |
|
3.19.x |
1.34.x - 1.31.x |
Установка Helm
Для работы helm необходим доступ к развернутому кластеру Kubernetes. Подробную информацию о развертывании кластера Kubernetes см. в нашей инструкции «Установка kubernetes с использованием контейнерного движка containerd».
Для установки helm на master-ноде выполните команду (потребуются права администратора):
sudo dnf install helm
Убедитесь, что helm установлен, проверив версию:
helm version
Ответ команды должен иметь примерно следующий вид:
version.BuildInfo{Version:"4.2.0", GitCommit:"06468084e85c244c712834933d25ea232a4c2093", GitTreeState:"clean", GoVersion:"go1.26.3-X:nodwarf5", KubeClientVersion:"v1.36"}
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:25.0.15 Digest: sha256:4182ac473f71285a7125f8f2e18b32af9b22043ab2456dc3afa2f3419fd76f84 NAME: nginx LAST DEPLOYED: Mon Jul 27 20:21:29 2026 NAMESPACE: default STATUS: deployed REVISION: 1 DESCRIPTION: Install complete TEST SUITE: None NOTES: CHART NAME: nginx CHART VERSION: 25.0.15 APP VERSION: 1.31.3
Для доступа к веб-интерфейсу необходимо определить ноду, на которой установлен nginx, с помощью команды:
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-645655d856-l9rt6 1/1 Running 0 87s 10.244.1.4 work-node <none> <none>
А также определить порт, по которому доступен nginx:
kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 14m
nginx LoadBalancer 10.96.160.25 <pending> 80:32604/TCP,443:32391/TCP 2m45s
После этого откройте веб-браузер и в адресной строке введите адрес вида http://<IP-адрес_ноды>:<порт>.

Дата последнего изменения: 28.07.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.