Обзор
Helm — это незаменимый инструмент для развертывания и управления приложениями в кластере Kubernetes. Вы можете искать приложения в репозиториях диаграмм, устанавливать их, а также выполнять обновления и откаты с помощью управления версиями. Это позволяет управлять сложными ресурсами Kubernetes, объединяя их в единое логическое целое.
Основные функции
Основные функции, предоставляемые Helm, включают:
- Упаковка приложений Kubernetes (диаграммы)
- Управление и поиск репозиториев диаграмм
- Развертывание, обновление и откат приложений
- Управление релизами и отслеживание истории
- Гибкая настройка с помощью шаблонов
Установка
Helm обычно не входит в состав большинства дистрибутивов Linux, поэтому его необходимо устанавливать вручную. Ниже приведены распространенные способы установки.
Установка с помощью скрипта (рекомендуется)
curl -fsSL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Это наиболее распространенный и рекомендуемый способ установки Helm с использованием официального установочного скрипта.
Установка через Homebrew (macOS/Linux)
brew install helm
Если вы используете менеджер пакетов Homebrew, вы можете установить Helm с помощью следующей команды.
Установка через apt (Debian/Ubuntu)
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
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
sudo apt-get update
sudo apt-get install helm
В системах на базе Debian или Ubuntu вы можете установить Helm через менеджер пакетов apt.
Основные подкоманды
Команды Helm позволяют гибко управлять приложениями Kubernetes с помощью различных подкоманд. Ниже приведены основные часто используемые подкоманды.
Управление релизами
Управление диаграммами
Получение информации
Сгенерированная команда:
Комбинируйте команды.
Описание:
`helm` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Вот несколько примеров управления приложениями Kubernetes с использованием основных функций Helm.
Добавление репозитория диаграмм
helm repo add bitnami https://charts.bitnami.com/bitnami
Добавляет репозиторий диаграмм Bitnami, чтобы можно было использовать различные диаграммы приложений.
Обновление репозитория диаграмм
helm repo update
Обновляет информацию обо всех добавленных репозиториях диаграмм до актуального состояния.
Поиск диаграмм
helm search repo nginx
Ищет диаграммы в репозитории, содержащие ключевое слово 'nginx'.
Установка диаграммы
helm install my-nginx bitnami/nginx
Устанавливает диаграмму Nginx от Bitnami под названием 'my-nginx'.
Просмотр списка релизов
helm list
Проверяет список всех релизов Helm, развернутых в текущем кластере Kubernetes.
Обновление релиза
helm upgrade my-nginx bitnami/nginx --set service.type=NodePort
Обновляет существующий релиз 'my-nginx', изменяя тип сервиса Nginx на NodePort.
Удаление релиза
helm uninstall my-nginx
Удаляет релиз с именем 'my-nginx' и все связанные с ним ресурсы Kubernetes.
Советы и предостережения
Советы и моменты, на которые стоит обратить внимание, чтобы эффективно использовать Helm и предотвратить возможные проблемы.
Разработка и проверка диаграмм Helm
Полезные советы при разработке собственных диаграмм или модификации существующих.
- Используйте команду `helm create <имя_диаграммы>`, чтобы создать базовую структуру диаграммы, а затем измените файлы `values.yaml` и шаблоны для определения вашего приложения.
- Используйте `helm lint <путь_к_диаграмме>`, чтобы проверить валидность диаграммы и заранее выявить потенциальные ошибки или предупреждения. Это поможет решить проблемы до развертывания.
Безопасное управление релизами
Способы снижения рисков при развертывании и обновлении.
- При использовании `helm install` или `helm upgrade` совместно с опциями `--dry-run --debug` вы можете проверить сгенерированные манифесты YAML перед фактическим развертыванием. Это очень полезно для предварительного выявления непредвиденных изменений или ошибок.
- Начиная с Helm 3, опция `--purge` больше не требуется для удаления релиза, и по умолчанию удаляются все ресурсы. Чтобы сохранить историю релизов, используйте `helm uninstall --keep-history <имя_релиза>`.
Указание пространства имен
Способ развертывания релиза в определенном пространстве имен Kubernetes.
- Описание: Используйте опцию `--namespace <имя_пространства_имен>` при выполнении `helm install` или `helm upgrade`, чтобы развернуть релиз в определенном пространстве имен. Если это пространство имен не существует, вы можете добавить опцию `--create-namespace`, чтобы оно было создано автоматически.