(УСТАРЕЛО) Использование Helm для развертывания контейнеров в кластере Kubernetes

Совет

Обновленная версия этой статьи — Установка приложения с помощью Helm в службе Azure Kubernetes.

Предупреждение

Служба контейнеров Azure (ACS) выводится из эксплуатации. В нее больше не добавляются новые компоненты или функциональные возможности. Все API, интерфейс портала, команды CLI и документы помечаются как нерекомендуемые.

В 2017 году мы объявили о выпуске Службы Azure Kubernetes (AKS), которая призвана упростить администрирование, развертывание и эксплуатацию платформы Kubernetes. Если вы используете оркестратор Kubernetes, перейдите на AKS до 31 января 2020 года. Чтобы приступить к работе, см. статью о переходе на Службу Azure Kubernetes.

Дополнительные сведения см. в статье Поддержка Службы контейнеров Azure будет прекращена 31 января 2020 года.

Helm — это средство упаковки с открытым исходным кодом, которое помогает установить приложения Kubernetes и управлять их жизненным циклом. Аналогично диспетчерам пакетов Linux, таких как Apt-get и Yum, Helm используется для управления чартами Kubernetes, представляющими собой пакеты предварительно настроенных ресурсов Kubernetes. В этой статье показано, как работать с Helm в кластере Kubernetes, развернутом в Службе контейнеров Azure.

Helm состоит из двух компонентов:

  • Helm CLI — клиент, который выполняется на компьютере локально или в облаке.

  • Tiller — сервер, который выполняется в кластере Kubernetes и управляет жизненным циклом приложений Kubernetes.

Предварительные требования

Основы использования Helm

Чтобы просмотреть сведения о кластере Kubernetes, где вы устанавливаете Tiller и развертываете приложения, введите следующую команду:

kubectl cluster-info 

kubectl cluster-info

После установки Helm установите Tiller в кластере Kubernetes, введя следующую команду:

helm init --upgrade

После успешного завершения команды выводятся сведения следующего вида:

Установка Tiller

Чтобы просмотреть все доступные чарты Helm в репозитории, введите следующую команду:

helm search 

Выводятся сведения следующего вида:

Поиск Helm

Чтобы обновить чарты для использования актуальных версий, введите:

helm repo update 

Развертывание чарта входящего контроллера Nginx

Чтобы развернуть чарт входящего контроллера Nginx, введите одну команду:

helm install stable/nginx-ingress 

Развертывание входящего контроллера

Если ввести kubectl get svc для просмотра всех служб, запущенных на кластере, вы увидите, что IP-адрес назначен входящему контроллеру. (Пока задание выполняется, вы увидите <pending>. Выполнение займет несколько минут.)

После назначения IP-адреса перейдите к значению внешнего IP-адреса, чтобы увидеть работу серверной части Nginx.

Входящий IP-адрес

Чтобы просмотреть список чартов, установленных в кластере, введите:

helm list 

Команду можно сократить до helm ls.

Развертывание клиента и чарта MariaDB

Разверните чарт и клиент MariaDB для подключения к базе данных.

Чтобы развернуть чарт MariaDB, введите следующую команду:

helm install --name v1 stable/mariadb

здесь --name — тег, используемый для выпусков.

Совет

Если развертывание завершается сбоем, запустите helm repo update и повторите попытку.

Для просмотра всех чартов, развернутых в кластере, введите:

helm list

Для просмотра всех развертываний, запущенных в кластере, введите:

kubectl get deployments 

Наконец, чтобы запустить pod для доступа к клиенту, введите:

kubectl run v1-mariadb-client --rm --tty -i --image bitnami/mariadb --command -- bash  

Чтобы подключиться к клиенту, введите следующую команду, заменив v1-mariadb на имя развертывания:

sudo mysql –h v1-mariadb

Теперь для создания баз данных, таблиц и т. д. можно использовать стандартные команды SQL. Например, Create DATABASE testdb1; создает пустую базу данных.

Дальнейшие действия