---
title: "Использование Helm в Kubernetes"
description: "Использование Helm в Kubernetes. Документация и инструкции по настройке облачных сервисов Timeweb Cloud."
---

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Helm — это инструмент для управления Kubernetes-приложениями, упрощающий развертывание, обновление и обслуживание сложных приложений, состоящих из множества Kubernetes-объектов. По своей сути, Helm можно сравнить с пакетным менеджером для Kubernetes, таким как apt или yum в Linux, но адаптированным для работы с Kubernetes-кластерами.

Helm решает несколько ключевых задач:

#### Упрощение развертывания

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

#### Управление версиями приложений

Каждый чарт может иметь несколько версий, что позволяет легко откатываться к предыдущей версии или обновлять приложение. Helm поддерживает управление версиями, отслеживание изменений развернутых приложений (релизов) и позволяет выполнять откаты при необходимости.

#### Повторное использование конфигураций

Helm использует шаблоны для генерации конфигурационных файлов Kubernetes, что облегчает настройку параметров, таких как количество реплик, настройки сетевого доступа, базы данных и другие переменные. Эти настройки хранятся в специальном конфигурационном файле — values.yaml. Это позволяет использовать один и тот же чарт в разных окружениях (разработка, тестирование, продакшн) с минимальными изменениями.

#### Централизованное управление репозиториями

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

## Установка Helm

Helm тесно связан с версией Kubernetes, поэтому важно выбрать версию, совместимую с вашей версией кластера. Вы можете ознакомиться с таблицей совместимости версий Helm и Kubernetes в [официальной документации](https://helm.sh/docs/topics/version_skew/#supported-version-skew).

Linux

Чтобы установить Helm на Linux, можно использовать официальный скрипт для автоматической установки.

Скачайте установочный скрипт и измените его права на выполнение:

```bash
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 700 get_helm.sh
```

Запустите скрипт для установки последней версии Helm:

```bash
./get_helm.sh
```

Укажите версию Helm, совместимую с вашим Kubernetes-кластером:

```bash
./get_helm.sh -v 3.14.1
```

#### Установка через репозиторий на Ubuntu

Для установки Helm через системный пакетный менеджер на Ubuntu, выполните следующие шаги:

Добавьте ключ подписи репозитория Helm:

```bash
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
```

Установите пакет `apt-transport-https`, если он не был установлен ранее:

```bash
sudo apt install apt-transport-https --yes
```

Добавьте репозиторий Helm в список источников APT:

```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
```

После этого выполните команду:

```bash
sudo apt update
```

Теперь, когда все подготовительные шаги выполнены, можно установить Helm:

```bash
sudo apt install helm
```

Эта команда устанавливает последнюю доступную версию Helm из репозитория.

Укажите версию Helm, совместимую с вашим Kubernetes-кластером:

```bash
sudo apt install helm=3.14.2-1
```

Проверьте корректность установки, выполнив:

```bash
helm version
```

![Image1](https://content.timeweb.com/assets/16019808-4504-4d9a-ba6a-5af1f3af100f.png?width=720&height=87)

Windows

Чтобы установить Helm на Windows, выполните следующие шаги:

Запустите PowerShell от имени администратора.

Установите Helm с помощью следующей команды:

```shell
winget install Helm.Helm
```

Установите версию Helm, совместимую с вашим Kubernetes-кластером:

```shell
winget install Helm.Helm -v 3.14.1
```

Проверьте версию Helm:

```shell
helm version
```

![Image3](https://content.timeweb.com/assets/fe5a9a18-0fa0-4771-b672-2cf6f8bfc6c7.png?width=1223&height=90)

MacOS

Чтобы установить Helm на MacOS, можно использовать официальный скрипт для автоматической установки.

Скачайте установочный скрипт и измените его права на выполнение:

```bash
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 700 get_helm.sh
```

Запустите скрипт для установки последней версии Helm:

```bash
./get_helm.sh
```

Укажите версию Helm, совместимую с вашим Kubernetes-кластером:

```bash
./get_helm.sh -v 3.14.1
```

#### Установка через Homebrew

Если вы используете Homebrew, Helm можно установить с его помощью. Обратите внимание, что в репозиториях Homebrew доступна только последняя версия Helm. Для установки выполните команду:

```bash
brew install helm
```

Проверьте версию Helm:

```bash
helm version
```

![Image4](https://content.timeweb.com/assets/3c11a216-3d6c-4f6c-b0eb-2ab9e339ade6.png?width=1018&height=127)

## Настройка репозиториев Helm

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

### Добавление репозитория

Чтобы установить приложение из удаленного репозитория, его нужно сначала добавить в список доступных источников. Это делается с помощью команды `helm repo add`. Например, для добавления популярного репозитория Bitnami выполните следующую команду:

```bash
helm repo add bitnami https://charts.bitnami.com/bitnami
```

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

### Обновление репозиториев

Иногда чарты в репозиториях обновляются, и чтобы убедиться, что у вас актуальные версии, необходимо периодически обновлять информацию о репозиториях. Для этого используется команда:

```bash
helm repo update
```

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

### Просмотр доступных репозиториев

Вы можете посмотреть список всех подключенных репозиториев с помощью команды:

```bash
helm repo list
```

Пример вывода: 

![Image2](https://content.timeweb.com/assets/467f5232-e419-4b30-ac52-7448cc307865.png?width=681&height=188)

### Удаление репозитория

Если какой-то репозиторий больше не нужен, его можно удалить с помощью команды `helm repo remove`. Например, чтобы удалить репозиторий Bitnami, выполните:

```bash
helm repo remove bitnami
```

Эта команда удаляет репозиторий только из локальной конфигурации Helm. Сами чарты и установленные приложения при этом не затрагиваются.

## Установка приложений с помощью Helm

После настройки репозиториев вы можете искать и устанавливать приложения в Kubernetes с помощью Helm.

### Поиск приложений в репозиториях

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

```bash
helm search repo <название_приложения>
```

Например, для поиска NGINX выполните:

```bash
helm search repo nginx
```

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

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

```bash
helm install <имя_релиза> <репозиторий>/<название_чарта>
```

Например, для установки NGINX из репозитория Bitnami:

```bash
helm install my-nginx bitnami/nginx
```

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

Чтобы проверить состояние приложения, выполните:

```bash
kubectl get pods
```

Для получения информации о релизе:

```bash
helm status <имя_релиза>
```

### Переопределение параметров установки

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

```bash
helm install my-nginx bitnami/nginx --set service.type=NodePort
```

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

Чтобы удалить приложение и его ресурсы:

```bash
helm uninstall <имя_релиза>
```
