3.9.16 Управление пакетами Kubernetes с помощью HELM
Поддерживаемые версии
Установка Helm
Helm-чарты
Репозитории
Релизы чартов
Пример работы
Окружение
- Версия ОС: 8
- Конфигурация ОС: Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная
- Версия ПО: kubernetes1.34-1.34.2-1, kubernetes1.34-kubeadm-1.34.2-1, helm-3.19.2-1
Helm — инструмент для управления пакетами (чартами) в Kubernetes, который упрощает развёртывание, обновление и обслуживание сложных приложений, состоящих из множества Kubernetes-объектов. Helm можно сравнить с пакетным менеджером, таким как dnf, но адаптированным для работы с кластерами Kubernetes.
Поддерживаемые версии
|
Версия Helm |
Версии Kubernetes |
|---|---|
|
3.19.x |
1.34.x - 1.31.x |
|
3.18.x |
1.33.x - 1.30.x |
|
3.17.x |
1.32.x - 1.29.x |
Установка Helm
Для работы helm необходим доступ к развернутому кластеру Kubernetes. Подробную информацию о развертывании кластера Kubernetes см. в нашей инструкции «Установка kubernetes с использованием контейнерного движка containerd».
Для установки helm на master-ноде выполните команду (потребуются права администратора):
sudo dnf install helm
Убедитесь, что helm установлен, проверив версию:
helm version
Ответ команды должен иметь примерно следующий вид:
version.BuildInfo{Version:"3.19.2", GitCommit:"8766e718a0119851f10ddbe4577593a45fadf544", GitTreeState:"clean", GoVersion:"go1.25.3"}
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: Tue Dec 23 16:59:03 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-557c4d9cc7-cbdv6 1/1 Running 0 5m35s 10.244.1.2 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 41m
nginx LoadBalancer 10.109.66.231 <pending> 80:30650/TCP,443:32047/TCP 6m27s
После этого откройте веб-браузер и в адресной строке введите адрес вида http://<IP-адрес_ноды>:<порт>.

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