Инструменты пользователя

Инструменты сайта


лабораторная_работа:разворачивание_приложений_в_kubernetes_с_помощью_helm

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

лабораторная_работа:разворачивание_приложений_в_kubernetes_с_помощью_helm [2025/05/31 21:21] (текущий)
kirill создано
Строка 1: Строка 1:
 +# Разворачивание приложений в Kubernetes с помощью Helm
  
 +## Введение
 +
 +Helm - мощный инструмент для управления Kubernetes-приложениями. Он позволяет упаковывать, настраивать и развертывать приложения в виде Chart'ов. В этой лекции мы рассмотрим процесс развертывания приложений в Kubernetes с использованием Helm.
 +
 +## Шаг 1: Установка Helm
 +
 +Прежде чем начать развертывание приложений с помощью Helm, необходимо установить клиент Helm на вашу локальную машину или машину, с которой вы управляете кластером Kubernetes.
 +
 +1.  **Скачайте бинарный файл Helm:** Перейдите на страницу релизов Helm на GitHub ([https://github.com/helm/helm/releases](https://github.com/helm/helm/releases)) и скачайте подходящую версию для вашей операционной системы.
 +2.  **Распакуйте архив:** Распакуйте скачанный архив.
 +3.  **Переместите бинарный файл `helm` в директорию, находящуюся в вашем `PATH`:** Например, `/usr/local/bin/`.
 +    ```bash
 +    tar -zxvf helm-vX.Y.Z-linux-amd64.tar.gz
 +    sudo mv linux-amd64/helm /usr/local/bin/helm
 +    ```
 +4.  **Проверьте установку:**
 +    ```bash
 +    helm version
 +    ```
 +    Вы должны увидеть информацию о версии клиента Helm.
 +
 +## Шаг 2: Добавление репозиториев Helm Chart'ов
 +
 +Helm Chart'ы хранятся в репозиториях. Чтобы развернуть приложение, вам может потребоваться добавить репозиторий, содержащий нужный Chart.
 +
 +1.  **Добавление публичного репозитория (пример - Bitnami):**
 +    ```bash
 +    helm repo add bitnami [https://charts.bitnami.com/bitnami](https://charts.bitnami.com/bitnami)
 +    ```
 +2.  **Обновление информации о репозиториях:**
 +    ```bash
 +    helm repo update
 +    ```
 +3.  **Просмотр списка добавленных репозиториев:**
 +    ```bash
 +    helm repo list
 +    ```
 +
 +## Шаг 3: Поиск Chart'ов
 +
 +Перед установкой приложения вы можете поискать доступные Chart'ы в добавленных репозиториях.
 +
 +1.  **Поиск Chart'а (пример - nginx):**
 +    ```bash
 +    helm search repo nginx
 +    ```
 +    Эта команда отобразит список Chart'ов, связанных с `nginx`, доступных в настроенных репозиториях.
 +
 +## Шаг 4: Получение информации о Chart'е
 +
 +Перед установкой рекомендуется ознакомиться с информацией о Chart'е, его значениями по умолчанию и структурой.
 +
 +1.  **Получение информации о Chart'е (пример - nginx из репозитория bitnami):**
 +    ```bash
 +    helm show chart bitnami/nginx
 +    ```
 +2.  **Просмотр значений по умолчанию (values.yaml):**
 +    ```bash
 +    helm show values bitnami/nginx
 +    ```
 +    Этот вывод покажет вам все настраиваемые параметры Chart'а и их значения по умолчанию.
 +
 +## Шаг 5: Настройка значений Chart'а (необязательно)
 +
 +Вы можете настроить приложение, переопределив значения по умолчанию из `values.yaml`. Это можно сделать несколькими способами:
 +
 +1.  **Создание файла `values.yaml` с пользовательскими значениями:**
 +    * Скопируйте содержимое `helm show values bitnami/nginx` в локальный файл `my-nginx-values.yaml`.
 +    * Отредактируйте этот файл, изменив нужные параметры (например, количество реплик, порты, переменные окружения).
 +
 +    ```yaml
 +    # my-nginx-values.yaml
 +    replicaCount: 2
 +    service:
 +      type: LoadBalancer
 +      port: 8080
 +    ```
 +
 +2.  **Передача значений через командную строку `--set`:**
 +    ```bash
 +    helm install my-nginx bitnami/nginx --set replicaCount=2 --set service.type=LoadBalancer --set service.port=8080
 +    ```
 +
 +## Шаг 6: Развертывание приложения с помощью Helm
 +
 +Теперь вы готовы развернуть приложение, используя выбранный Chart и (необязательно) настроенные значения.
 +
 +1.  **Установка Chart'а:**
 +    ```bash
 +    helm install <RELEASE_NAME> <CHART> [-n <NAMESPACE>] [-f <VALUES_FILE>] [--set <KEY=VALUE>]
 +    ```
 +    * `<RELEASE_NAME>`: Уникальное имя для вашего релиза приложения в кластере.
 +    * `<CHART>`: Имя Chart'а (например, `bitnami/nginx`).
 +    * `-n <NAMESPACE>`: Namespace, в котором будет развернуто приложение (если не указан, используется `default`).
 +    * `-f <VALUES_FILE>`: Путь к файлу с пользовательскими значениями.
 +    * `--set <KEY=VALUE>`: Переопределение отдельных значений через командную строку.
 +
 +    **Пример с использованием файла значений:**
 +    ```bash
 +    helm install my-nginx bitnami/nginx -n my-namespace -f my-nginx-values.yaml
 +    ```
 +
 +    **Пример с использованием `--set`:**
 +    ```bash
 +    helm install my-nginx bitnami/nginx -n my-namespace --set replicaCount=2 --set service.type=LoadBalancer --set service.port=8080
 +    ```
 +
 +2.  **Проверка статуса релиза:**
 +    ```bash
 +    helm status <RELEASE_NAME> -n <NAMESPACE>
 +    ```
 +    Эта команда отобразит информацию о развернутом релизе, включая ресурсы Kubernetes, созданные Helm.
 +
 +3.  **Просмотр списка релизов:**
 +    ```bash
 +    helm list -n <NAMESPACE>
 +    ```
 +    Эта команда покажет список всех релизов, развернутых в указанном namespace.
 +
 +## Шаг 7: Взаимодействие с развернутым приложением
 +
 +После успешного развертывания приложения вы можете взаимодействовать с ним, используя стандартные команды `kubectl`.
 +
 +1.  **Просмотр созданных Pod'ов:**
 +    ```bash
 +    kubectl get pods -n <NAMESPACE>
 +    ```
 +2.  **Просмотр созданных Service'ов:**
 +    ```bash
 +    kubectl get services -n <NAMESPACE>
 +    ```
 +    В зависимости от типа Service (ClusterIP, NodePort, LoadBalancer), способ доступа к приложению будет отличаться.
 +
 +## Шаг 8: Обновление приложения
 +
 +Helm позволяет легко обновлять развернутые приложения до новых версий Chart'а или с измененными значениями.
 +
 +1.  **Обновление релиза:**
 +    ```bash
 +    helm upgrade <RELEASE_NAME> <CHART> [-n <NAMESPACE>] [-f <NEW_VALUES_FILE>] [--set <NEW_KEY=NEW_VALUE>]
 +    ```
 +    * `<RELEASE_NAME>`: Имя существующего релиза.
 +    * `<CHART>`: Новая версия Chart'а (можно указать другую версию, например, `bitnami/nginx --version 1.16.0`).
 +    * `-f <NEW_VALUES_FILE>`: Файл с новыми значениями.
 +    * `--set <NEW_KEY=NEW_VALUE>`: Переопределение значений через командную строку.
 +
 +    **Пример обновления с новым файлом значений:**
 +    ```bash
 +    helm upgrade my-nginx bitnami/nginx -n my-namespace -f new-nginx-values.yaml
 +    ```
 +
 +## Шаг 9: Откат к предыдущей версии
 +
 +Если обновление прошло неудачно, Helm позволяет откатиться к предыдущей рабочей версии релиза.
 +
 +1.  **Просмотр истории релизов:**
 +    ```bash
 +    helm history <RELEASE_NAME> -n <NAMESPACE>
 +    ```
 +    Эта команда покажет историю всех изменений релиза с указанием ревизий.
 +2.  **Откат к определенной ревизии:**
 +    ```bash
 +    helm rollback <RELEASE_NAME> <REVISION> -n <NAMESPACE>
 +    ```
 +    * `<REVISION>`: Номер ревизии, к которой нужно откатиться.
 +
 +    **Пример отката к предыдущей ревизии:**
 +    ```bash
 +    helm rollback my-nginx 1 -n my-namespace
 +    ```
 +
 +## Шаг 10: Удаление приложения
 +
 +Когда приложение больше не нужно, его можно удалить из кластера с помощью Helm.
 +
 +1.  **Удаление релиза:**
 +    ```bash
 +    helm uninstall <RELEASE_NAME> -n <NAMESPACE>
 +    ```
 +    Эта команда удалит все ресурсы Kubernetes, созданные Helm для данного релиза.
 +
 +## Заключение
 +
 +Helm значительно упрощает процесс развертывания и управления приложениями в Kubernetes. Следуя этим шагам, вы сможете легко устанавливать, настраивать, обновлять и удалять приложения, используя готовые Chart'ы из репозиториев или создавая собственные. Использование Helm повышает эффективность и упрощает управление сложными Kubernetes-приложениями.
лабораторная_работа/разворачивание_приложений_в_kubernetes_с_помощью_helm.txt · Последнее изменение: 2025/05/31 21:21 — kirill

DokuWiki Appliance - Powered by TurnKey Linux