Поиск по сайту:

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


Эта статья является продолжением моей статьи «Что такое Helm и как его установить на сервер Ubuntu 20.04?». Если вы новичок в Helm, я бы порекомендовал вам сначала ознакомиться со статьей, о которой я упоминал. В этой статье мы выпустим Apache из существующей схемы. Мы создадим образец диаграммы и выпустим, обновим, откатим, удалим и восстановим его. Давайте кратко рассмотрим команды, прежде чем использовать их в статье позже.

  1. Поиск Helm: поиск диаграмм Helm
  2. хелм-репозиторий: выполнение таких операций, как добавление, перечисление, удаление, обновление и индексирование в репозитории.
  3. helm delete: удалить диаграмму, что, в свою очередь, удалит все ее объекты Kubernetes.
  4. статус управления: отображение статуса выпуска.
  5. helm create: создание диаграммы управления.
  6. helm install: установка диаграммы, которая, в свою очередь, создает свои объекты Kubernetes.
  7. Обновление шлема: обновить выпуск с внесенными в него изменениями.
  8. хелм история: получить историю выпуска.
  9. Откат руля: отменить изменения предыдущей версии.

Прежде чем продолжить, предполагается, что вы знакомы с основами Helm. Также предполагается, что у вас уже установлен кластер Kubernetes и клиент helm.

Предпосылки

  1. Кластер Kubernetes по крайней мере с 1 рабочим узлом.
    Если вы хотите научиться создавать кластер Kubernetes, нажмите здесь. Это руководство поможет вам создать кластер Kubernetes с 1 мастером и 2 узлами на экземплярах AWS Ubuntu 18.04 EC2.
  2. Helm установлен на главном узле (поищите мою статью «Что такое Helm и как его установить на сервер Ubuntu 20.04», чтобы понять основы Helm и установить его).

Что мы будем делать?

  1. Выпустите образец диаграммы из репозитория.
  2. Создайте диаграмму и выпустите образец приложения.
  3. Обновите выпуск.
  4. Восстановить выпуск после его удаления

Выпуск образца диаграммы из репозитория

Во-первых, давайте проверим, доступен ли \руль\ на сервере или нет.

helm version

В качестве примера попробуем установить чарт Apache из хаба. Выполните следующую команду, чтобы выполнить поиск Apache на хабе.

helm search hub apache

Вы получите набор результатов, скопируйте URL-адрес одного из поисков Apache. В данном случае я скопировал первый URL.

Нажмите URL-адрес в веб-браузере, и вы увидите следующую страницу.

На этой странице вы получите команды для добавления репозитория в локальную систему и установки из него диаграммы.

Выполните команды в вашей локальной системе, которые добавят репозиторий для диаграммы Apache.

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

helm repo list

Когда у вас есть репозиторий в вашей системе, все готово для установки диаграммы и создания выпуска для Apache с помощью Helm.

helm install my-release bitnami/apache

После успешного выполнения команд вы увидите вывод, как указано выше.

После публикации диаграммы вы сможете увидеть объекты, созданные в кластере Kubernetes.

kubectl get nodes

kubectl get pods

Теперь вы можете получить IP-адрес модуля и попытаться перейти на страницу Apache с помощью команды curl.

kubectl get pods -o wide

kubectl get svc

curl 10.244.1.2:8080

Если вы хотите удалить выпуск, вы можете сделать это, просто используя следующую команду

helm delete my-release

Вы можете составить список выпусков в кластере и посмотреть, был ли выпуск успешно удален или нет.

helm ls

helm status my-release

Создайте диаграмму и разверните пример приложения

В приведенном выше сценарии мы установили диаграмму, которая была легко доступна и настроена. Мы можем создать собственную диаграмму и выпустить наше приложение. Создать диаграмму очень просто с помощью helm. Если вы выполните следующую команду, вы получите диаграмму с образцом приложения Nginx.

helm create my-first-chart

Исследуйте структуру папок диаграммы, которую мы создали с помощью приведенной выше команды.

cd my-first-chart/

ls -l

ls -l charts/

ls -l templates/

ls -l templates/tests/

Проверьте содержимое файла Chart.yaml.

ls -lt

cat Chart.yaml

Проверьте содержимое файла values.yaml.

ls -lt

cat values.yaml

Теперь давайте развернем пример приложения, используя локальную диаграмму.

pwd

cd ..

ls -l | grep my-first-chart

kubectl get pods

helm install my-first-release my-first-chart/

После успешного выпуска диаграммы вы увидите модуль, созданный в кластере.

kubectl get pods

kubectl get svc

Теперь вы можете получить доступ к модулю Nginx через сервис.

curl 10.104.229.187

Вы можете найти информацию о выпуске, который мы создали, используя следующую команду.

helm ls

helm status my-first-release

Обновите выпуск

В приведенном выше сценарии мы создали диаграмму с примером приложения Nginx. Количество реплик в приведенном выше сценарии было 1. Если вы хотите увеличить количество реплик, вы можете легко сделать это, внеся изменения в файл values.yaml.

cat my-first-chart/values.yaml | grep replica

vim my-first-chart/values.yaml

cat my-first-chart/values.yaml | grep replica

helm ls

Теперь вы можете легко развернуть свои изменения и обновить версию.

helm upgrade my-first-release my-first-chart/

Можно даже заметить, что ревизия релиза обновлена до 2.

helm ls

На этот раз вы можете увидеть два модуля, работающих в кластере, поскольку мы указали количество реплик равным 2.

kubectl get pods

helm ls

Если мы проверим историю выпуска, мы заметим, что выпуск имеет две версии. В первой версии был 1 модуль, а позже мы изменили количество реплик до 2, что привело к созданию версии 2 выпуска.

helm history my-first-release

Если мы не хотим, чтобы изменения были выпущены в версии 2, и хотим вернуться к версии 1, мы можем просто сделать это с помощью следующей команды отката.

helm rollback my-first-release 1

helm ls

И это создаст версию 3 для выпуска.

helm history my-first-release

Теперь вы можете видеть, что в кластере работает только один модуль.

kubectl get pods

Если вы хотите удалить образец приложения Nginx, выпущенный из диаграммы, вы можете удалить его, удалив выпуск.

helm ls

helm delete my-first-release

helm ls

Восстановить выпуск после его удаления

В приведенном выше сценарии мы удалили файл release. Но по умолчанию выпуск не сохраняет историю выпусков при удалении. Если вы хотите вернуться в таком сценарии, вы не сможете сделать это, если не укажете параметр --keep-history для команды удаления выпуска.

helm ls

helm install my-second-release my-first-chart/

helm ls

Если вы укажете параметр --keep-history при удалении выпуска, штурвал создаст новую версию выпуска. Таким образом, вы можете вернуться к предыдущей рабочей версии даже после удаления выпуска или приложения.

helm delete my-second-release --keep-history

helm ls

helm ls -a

helm history my-second-release

helm rollback my-second-release 1

helm ls

helm history my-second-release

Заключение

В этой статье мы развернули пример приложения из таблицы Helm, доступной в Интернете. Мы даже видели, как создать диаграмму Helm в нашей системе и выпустить ее. Наряду с этим мы увидели, как удалять чарты Helm, выполнять откат к предыдущим версиям и сохранять историю выпусков даже после удаления чата.