Использование Реестра контейнеров Azure в качестве репозитория Helm для диаграмм приложенияUse Azure Container Registry as a Helm repository for your application charts

Для быстрого управления и развертывания приложений для Kubernetes можно использовать Диспетчер пакетов Helm с открытым исходным кодом.To quickly manage and deploy applications for Kubernetes, you can use the open-source Helm package manager. При использовании Helm приложения определяются как диаграммы, хранящиеся в репозитории диаграмм Helm.With Helm, applications are defined as charts that are stored in a Helm chart repository. Эти диаграммы определяют конфигурации и зависимости. Для них может осуществляться управление версиями на протяжении всего жизненного цикла приложения.These charts define configurations and dependencies, and can be versioned throughout the application lifecycle. Реестр контейнеров Azure можно использовать как узел для репозиториев диаграмм Helm.Azure Container Registry can be used as the host for Helm chart repositories.

С Реестром контейнеров Azure предоставляется конфиденциальный, безопасный репозиторий диаграмм Helm, который можно интегрировать с конвейерами сборки или другими службами Azure.With Azure Container Registry, you have a private, secure Helm chart repository, that can integrate with build pipelines or other Azure services. Репозитории диаграмм Helm в Реестре контейнеров Azure предоставляют функции георепликации для хранения диаграмм в непосредственной пространственной близости от развертываний, а также для обеспечения избыточности.Helm chart repositories in Azure Container Registry include geo-replication features to keep your charts close to deployments and for redundancy. Вы платите только за объем хранилища, используемый для диаграмм. Эти возможности доступны во всех ценовых категориях Реестра контейнеров Azure.You only pay for the storage used by the charts, and are available across all Azure Container Registry price tiers.

В этой статье показано, как использовать репозиторий диаграмм Helm, хранящийся в Реестре контейнеров Azure.This article shows you how to use a Helm chart repository stored in Azure Container Registry.

Важно!

Эта функция в настоящее время находится на стадии предварительной версии.This feature is currently in preview. Предварительные версии предоставляются при условии, что вы принимаете дополнительные условия использования.Previews are made available to you on the condition that you agree to the supplemental terms of use. Некоторые аспекты этой функции могут быть изменены до выхода общедоступной версии.Some aspects of this feature may change prior to general availability (GA).

Перед началом работыBefore you begin

Чтобы выполнить действия, описанные в этой статье, необходимо выполнить следующие предварительные требования.To complete the steps in this article, the following pre-requisites must be met:

  • Реестр контейнеров Azure. Создайте реестр контейнеров в своей подписке Azure.Azure Container Registry - Create a container registry in your Azure subscription. Это можно сделать на портале Azure или с помощью Azure CLI.For example, use the Azure portal or the Azure CLI.
  • Клиент Helm начиная с версии 2.11.0 (не релиз-кандидат) . Выполните команду helm version, чтобы узнать свою версию.Helm client version 2.11.0 (not an RC version) or later - Run helm version to find your current version. Вам также потребуется сервер Helm (Tiller), инициализированный в кластере Kubernetes.You also need a Helm server (Tiller) initialized within a Kubernetes cluster. При необходимости можно создать кластер службы Azure Kubernetes.If needed, you can create an Azure Kubernetes Service cluster. Дополнительные сведения об установке и обновлении Helm см. в разделе Installing Helm.For more information on how to install and upgrade Helm, see Installing Helm.
  • Azure CLI версии 2.0.46 или более поздней. Выполните команду az --version, чтобы получить сведения о версии.Azure CLI version 2.0.46 or later - Run az --version to find the version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.If you need to install or upgrade, see Install Azure CLI.

Добавление репозитория в клиент HelmAdd a repository to Helm client

Репозиторий Helm — это HTTP-сервер, на котором можно хранить диаграммы Helm.A Helm repository is an HTTP server that can store Helm charts. Реестр контейнеров Azure обеспечивает это хранилище для диаграмм Helm и позволяет управлять определением индекса по мере добавления и удаления диаграмм в репозитории.Azure Container Registry can provide this storage for Helm charts, and manage the index definition as you add and remove charts to the repository.

Чтобы добавить Реестр контейнеров Azure как репозиторий диаграмм Helm, используйте Azure CLI.To add your Azure Container Registry as a Helm chart repository, you use the Azure CLI. При использовании этого подхода для клиента Helm задается универсальный код ресурса (URI) и учетные данные репозитория, поддерживаемого Реестром контейнеров Azure.With this approach, your Helm client is updated with the URI and credentials for the repository backed by Azure Container Registry. Вам не нужно вручную указывать сведения об этом репозитории, поэтому учетные данные не предоставляются в журнале команд.You don't need to manually specify this repository information, so the credentials aren't exposed in the command history, for example.

При необходимости войдите в Azure CLI и следуйте инструкциям на экране.If needed, log in to the Azure CLI and follow the prompts:

az login

Настройте Azure CLI по умолчанию, указав имя реестра контейнеров Azure с помощью команды AZ configure .Configure the Azure CLI defaults with the name of your Azure Container Registry using the az configure command. В следующем примере замените <acrName> именем своего реестра:In the following example, replace <acrName> with the name of your registry:

az configure --defaults acr=<acrName>

Теперь добавьте в клиент Helm репозиторий диаграммы Helm реестра контейнеров Azure, выполнив команду AZ контроля доступа Helm репозитория Add .Now add your Azure Container Registry Helm chart repository to your Helm client using the az acr helm repo add command. Эта команда предоставляет маркер аутентификации для Реестра контейнеров Azure, используемый клиентом Helm.This command gets an authentication token for your Azure container registry that is used by the Helm client. Этот маркер аутентификации действителен в течение 1 часа.The authentication token is valid for 1 hour. Как и docker login, эту команду можно выполнить в будущих сеансах интерфейса командной строки для аутентификации клиента Helm в репозитории диаграмм Helm Реестра контейнеров Azure:Similar to docker login, you can run this command in future CLI sessions to authenticate your Helm client with your Azure Container Registry Helm chart repository:

az acr helm repo add

Добавление диаграммы в репозиторийAdd a chart to the repository

В рамках этой статьи вы получите существующую диаграмму Helm из общедоступного репозитория Helm stable.For this article, let's get an existing Helm chart from the public Helm stable repo. Репозиторий stable — это рекомендуемый общедоступный репозиторий, содержащий общие диаграммы приложений.The stable repo is a curated, public repo that includes common application charts. Распространители пакетов могут отправлять диаграммы в репозиторий stable тем же способом, что и Центр Docker предоставляет общедоступный реестр для общих образов контейнера.Package maintainers can submit their charts to the stable repo, in the same way that Docker Hub provides a public registry for common container images. Диаграммы, скачанные из общедоступного репозитория stable, можно затем отправить в закрытый репозиторий Реестра контейнеров Azure.The chart downloaded from the public stable repo can then be pushed to your private Azure Container Registry repository. В большинстве случаев необходимо создать и отправить собственные диаграммы для разрабатываемых приложений.In most scenarios, you would build and upload your own charts for the applications you develop. Дополнительные сведения о создании собственных диаграмм Helm см. в разделе Разработка диаграмм Helm.For more information on how to build your own Helm charts, see developing Helm charts.

Сначала создайте каталог в ~/acr-helm, а затем скачайте имеющуюся диаграмму stable/wordpress:First, create a directory at ~/acr-helm, then download the existing stable/wordpress chart:

mkdir ~/acr-helm && cd ~/acr-helm
helm fetch stable/wordpress

Выведите сведения о скачанной диаграмме и запишите версию WordPress, содержащуюся в имени файла.List the downloaded chart, and note the Wordpress version included in the filename. Команда helm fetch stable/wordpress не предоставила определенную версию, поэтому выбрана последняя версия.The helm fetch stable/wordpress command didn't specify a particular version, so the latest version was fetched. Все Helm диаграммы содержат номер версии в имени файла, который следует за стандартом SemVer 2 .All Helm charts include a version number in the filename that follows the SemVer 2 standard. В следующем примере выходных данных используется диаграмма Wordpress версии 2.1.10:In the following example output, the Wordpress chart is version 2.1.10:

$ ls

wordpress-2.1.10.tgz

Теперь отправьте диаграмму в репозиторий диаграммы Helm в реестре контейнеров Azure с помощью команды Azure CLI AZ контроля доступа Helm Push .Now push the chart to your Helm chart repository in Azure Container Registry using the Azure CLI az acr helm push command. Укажите имя скачанной на предыдущем шаге диаграммы Helm, например wordpress-2.1.10.tgz:Specify the name of your Helm chart downloaded in the previous step, such as wordpress-2.1.10.tgz:

az acr helm push wordpress-2.1.10.tgz

Через несколько секунд в Azure CLI отобразится оповещение о сохранении диаграммы, как показано в следующем примере выходных данных:After a few moments, the Azure CLI reports that your chart has been saved, as shown in the following example output:

$ az acr helm push wordpress-2.1.10.tgz

{
  "saved": true
}

Вывод списка диаграмм в репозиторииList charts in the repository

Клиент Helm поддерживает локальную кэшированную копию содержимого удаленных репозиториев.The Helm client maintains a local cached copy of the contents of remote repositories. Изменения, внесенные в удаленный репозиторий, не приводят к автоматическому обновлению списка доступных диаграмм, известных в локальной среде клиента Helm.Changes to a remote repository don't automatically update the list of available charts known locally by the Helm client. При поиске диаграмм в репозиториях Helm использует локальный кэшированный индекс.When you search for charts across repositories, Helm uses it's local cached index. Для использования диаграммы, отправленной на предыдущем шаге, необходимо обновить локальный индекс репозитория Helm.To use the chart uploaded in the previous step, the local Helm repository index must be updated. Вы можете выполнить повторную индексацию репозиториев в клиенте Helm или использовать Azure CLI, чтобы обновить индекс репозитория.You can reindex the repositories in the Helm client, or use the Azure CLI to update the repository index. Этот шаг необходимо выполнять при каждом добавлении диаграммы в репозиторий:Each time you add a chart to your repository, this step must be completed:

az acr helm repo add

С помощью диаграммы, хранимой в репозитории, и обновленного индекса, доступного в локальной среде, вы можете использовать команды обычного клиента Helm для поиска или установки.With a chart stored in your repository and the updated index available locally, you can use the regular Helm client commands to search or install. Чтобы просмотреть все диаграммы в репозитории, используйте команду helm search <acrName>.To see all the charts in your repository, use helm search <acrName>. Укажите собственное имя Реестра контейнеров Azure:Provide your own Azure Container Registry name:

helm search <acrName>

Диаграмма Wordpress, принудительно отправленная на предыдущем шаге, выведена в списке, как показано в следующем примере выходных данных:The Wordpress chart pushed in the previous step is listed, as shown in the following example output:

$ helm search myacrhelm

NAME                CHART VERSION   APP VERSION DESCRIPTION
helmdocs/wordpress  2.1.10          4.9.8       Web publishing platform for building blogs and websites.

Вы также можете вывести список диаграмм с Azure CLI с помощью команды AZ контроля доступа Helm List:You can also list the charts with the Azure CLI, using az acr helm list:

az acr helm list

Просмотр информации о диаграмме HelmShow information for a Helm chart

Чтобы просмотреть сведения об определенной диаграмме в репозитории, можно также использовать обычный клиент Helm.To view information for a specific chart in the repo, you can again use the regular Helm client. Чтобы просмотреть сведения о диаграмме с именем WordPress, используйте команду helm inspect.To see information for the chart named wordpress, use helm inspect.

helm inspect <acrName>/wordpress

Если номер версии не указан, используется последняя версия.When no version number is provided, the latest version is used. Helm возвращает подробные сведения о диаграмме, как показано в следующем сокращенном примере выходных данных:Helm returns detailed information about your chart, as shown in the following condensed example output:

$ helm inspect myacrhelm/wordpress

appVersion: 4.9.8
description: Web publishing platform for building blogs and websites.
engine: gotpl
home: https://www.wordpress.com/
icon: https://bitnami.com/assets/stacks/wordpress/img/wordpress-stack-220x234.png
keywords:
- wordpress
- cms
- blog
- http
- web
- application
- php
maintainers:
- email: containers@bitnami.com
  name: bitnami-bot
name: wordpress
sources:
- https://github.com/bitnami/bitnami-docker-wordpress
version: 2.1.10
[...]

Также можно отобразить сведения о диаграмме с помощью команды Azure CLI AZ запись контроля доступа Helm отобразить .You can also show the information for a chart with the Azure CLI az acr helm show command. Как и в предыдущем примере, по умолчанию возвращается последняя версия диаграммы.Again, the latest version of a chart is returned by default. Вы можете добавить --version, чтобы вывести определенную версию диаграммы, например 2.1.10:You can append --version to list a specific version of a chart, such as 2.1.10:

az acr helm show wordpress

Установка диаграммы Helm из репозиторияInstall a Helm chart from the repository

Диаграмма Helm в репозитории устанавливается путем указания имен репозитория и диаграммы.The Helm chart in your repository is installed by specifying the repository name and then chart name. Для установки диаграммы WordPress можно использовать клиент Helm:Use the Helm client to install the Wordpress chart:

helm install <acrName>/wordpress

Совет

Если отправить репозиторий диаграмм Helm в Реестр контейнеров Azure, а затем вернуться к работе в новом сеансе интерфейса командной строки, для локального клиента Helm необходимо будет предоставить обновленный маркер аутентификации.If you push to your Azure Container Registry Helm chart repository and later return in a new CLI session, your local Helm client needs an updated authentication token. Чтобы получить новый маркер проверки подлинности, используйте команду AZ контроля доступа Helm Repository Add .To obtain a new authentication token, use the az acr helm repo add command.

Во время установки выполняются следующие действия:The following steps are completed during the install process:

  • Клиент Helm выполняет поиск индекса локального репозитория.The Helm client searches the local repository index.
  • Соответствующая диаграмма скачивается из репозитория Реестра контейнеров Azure.The corresponding chart is downloaded from the Azure Container Registry repository.
  • Диаграмма развертывается с помощью Tiller в кластере Kubernetes.The chart is deployed using the Tiller in your Kubernetes cluster.

В следующем сжатом примере выходные данные содержат сведения о ресурсах Kubernetes, развернутых с использованием диаграммы Helm:The following condensed example output shows the Kubernetes resources deployed through the Helm chart:

$ helm install myacrhelm/wordpress

NAME:   irreverent-jaguar
LAST DEPLOYED: Thu Sep 13 21:44:20 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Pod(related)
NAME                                          READY  STATUS   RESTARTS  AGE
irreverent-jaguar-wordpress-7ff46d9b8c-b7v6m  0/1    Pending  0         1s
irreverent-jaguar-mariadb-0                   0/1    Pending  0         1s
[...]

Удаление диаграммы Helm из репозиторияDelete a Helm chart from the repository

Чтобы удалить диаграмму из репозитория, выполните команду AZ запись контроля доступа Helm Delete .To delete a chart from the repository, use the az acr helm delete command. Укажите имя диаграммы, например wordpress, и версию, которую необходимо удалить, например 2.1.10.Specify the name of the chart, such as wordpress, and the version to delete, such as 2.1.10.

az acr helm delete wordpress --version 2.1.10

Если вы хотите удалить все версии указанной диаграммы, не указывайте параметр --version.If you wish to delete all versions of the named chart, leave out the --version parameter.

Диаграммы продолжают возвращаться в выходных данных helm search <acrName>.The chart continues to be returned in helm search <acrName>. Как и в предыдущем примере, в клиенте Helm список доступных диаграмм в репозитории не обновляется автоматически.Again, the Helm client doesn't automatically update the list of available charts in a repository. Чтобы обновить индекс репозитория клиента Helm, выполните команду AZ контроля доступа Helm Repository Add .To update the Helm client repo index, use the az acr helm repo add command again:

az acr helm repo add

Следующие шагиNext steps

В рамках этой статьи применялась имеющаяся диаграмма Helm из общедоступного репозитория stable.This article used an existing Helm chart from the public stable repository. Дополнительные сведения о создании и развертывании Helm диаграмм см. в разделе Разработка диаграмм Helm.For more information on how to create and deploy Helm charts, see Developing Helm charts.

Диаграммы Helm можно использовать в процессе создания контейнеров.Helm charts can be used as part of the container build process. Дополнительные сведения см. в статье Использование задач реестра контейнеров Azure.For more information, see use Azure Container Registry Tasks.

Дополнительные сведения об использовании и управлении реестром контейнеров Azure см. вразделе рекомендации.For more information on how to use and manage Azure Container Registry, see the best practices.