Usare il Registro Azure Container come repository Helm per i grafici per le applicazioniUse Azure Container Registry as a Helm repository for your application charts

Per gestire e distribuire rapidamente le applicazioni per Kubernetes, è possibile usare la Gestione pacchetti Helm Open Source.To quickly manage and deploy applications for Kubernetes, you can use the open-source Helm package manager. Con Helm le applicazioni sono definite come grafici archiviati in un repository di grafici Helm.With Helm, applications are defined as charts that are stored in a Helm chart repository. Tali grafici definiscono le configurazioni e le dipendenze e possono essere con versione durante il ciclo di vita dell'applicazione.These charts define configurations and dependencies, and can be versioned throughout the application lifecycle. Il Registro Azure Container può essere usato come host per il repository di grafici Helm.Azure Container Registry can be used as the host for Helm chart repositories.

Con il Registro Azure Container è disponibile un repository di grafici Helm privato e sicuro in grado di integrarsi con le pipeline di compilazione o con altri servizi di Azure.With Azure Container Registry, you have a private, secure Helm chart repository, that can integrate with build pipelines or other Azure services. I repository di grafici Helm in Registro Azure Container includono funzionalità di replica geografica per mantenere i grafici più vicini alle distribuzioni e per garantire la ridondanza.Helm chart repositories in Azure Container Registry include geo-replication features to keep your charts close to deployments and for redundancy. Viene addebitato solo il costo per l'archiviazione usata dai grafici di e sono disponibili tutti i livelli di prezzo di Registro Azure Container.You only pay for the storage used by the charts, and are available across all Azure Container Registry price tiers.

Questo articolo illustra come usare un repository di grafici Helm archiviato in Registro Azure Container.This article shows you how to use a Helm chart repository stored in Azure Container Registry.

Importante

Questa funzionalità è attualmente in anteprima.This feature is currently in preview. Le anteprime vengono rese disponibili per l'utente a condizione che si accettino le condizioni d'uso aggiuntive.Previews are made available to you on the condition that you agree to the supplemental terms of use. Alcuni aspetti di questa funzionalità potrebbero subire modifiche prima della disponibilità a livello generale.Some aspects of this feature may change prior to general availability (GA).

Prima di iniziareBefore you begin

Per completare la procedura descritta in questo articolo, è necessario soddisfare i prerequisiti seguenti:To complete the steps in this article, the following pre-requisites must be met:

  • Registro Azure Container: creare un registro di contenitori nella sottoscrizione di Azure.Azure Container Registry - Create a container registry in your Azure subscription. Ad esempio usare il portale di Azure oppure l'interfaccia della riga di comando di Azure.For example, use the Azure portal or the Azure CLI.
  • Versione del client Helm 2.11.0 (non una versione finale candidata) o versione successiva: eseguire helm version per trovare la versione corrente.Helm client version 2.11.0 (not an RC version) or later - Run helm version to find your current version. È anche necessario un server Helm (Tiller) inizializzato in un cluster Kubernetes.You also need a Helm server (Tiller) initialized within a Kubernetes cluster. Se necessario, è possibile creare un cluster del servizio Azure Kubernetes.If needed, you can create an Azure Kubernetes Service cluster. Per altre informazioni su come installare e aggiornare Helm, vedere installazione di Helm.For more information on how to install and upgrade Helm, see Installing Helm.
  • Interfaccia della riga di comando di Azure versione 2.0.46 o successiva - Eseguire az --version per trovare la versione.Azure CLI version 2.0.46 or later - Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.If you need to install or upgrade, see Install Azure CLI.

Aggiungere un repository al client HelmAdd a repository to Helm client

Un repository Helm è un server HTTP in cui possono essere archiviati i grafici Helm.A Helm repository is an HTTP server that can store Helm charts. Il Registro Azure Container può rendere disponibile questa risorsa di archiviazione per i grafici Helm e gestire la definizione dell'indice quando si aggiungono e si rimuovono i grafici nel repository.Azure Container Registry can provide this storage for Helm charts, and manage the index definition as you add and remove charts to the repository.

Per aggiungere il Registro Azure Container come un repository di grafici Helm, usare l'interfaccia della riga di comando di Azure.To add your Azure Container Registry as a Helm chart repository, you use the Azure CLI. In questo modo il client Helm viene aggiornato con l'URI e le credenziali per il repository supportato da Registro Azure Container.With this approach, your Helm client is updated with the URI and credentials for the repository backed by Azure Container Registry. Non è necessario specificare manualmente le informazioni di questo repository, pertanto le credenziali, ad esempio, non sono esposte nella cronologia dei comandi.You don't need to manually specify this repository information, so the credentials aren't exposed in the command history, for example.

Se necessario, accedere all'interfaccia della riga di comando di Azure e seguire le istruzioni:If needed, log in to the Azure CLI and follow the prompts:

az login

Configurare le impostazioni predefinite dell'interfaccia della riga di comando di Azure con il nome del Container Registry di Azure usando il comando AZ Configure .Configure the Azure CLI defaults with the name of your Azure Container Registry using the az configure command. Nell'esempio seguente sostituire <acrName> con il nome del registro:In the following example, replace <acrName> with the name of your registry:

az configure --defaults acr=<acrName>

A questo punto, aggiungere il repository di Azure Container Registry Helm Chart al client Helm usando il comando AZ ACR Helm repo add .Now add your Azure Container Registry Helm chart repository to your Helm client using the az acr helm repo add command. Tale comando ottiene un tipo di token di autenticazione per il Registro Azure Container che viene usato dal client Helm.This command gets an authentication token for your Azure container registry that is used by the Helm client. Il token di autenticazione è valido per un'ora.The authentication token is valid for 1 hour. In modo analogo a docker login, è possibile eseguire questo comando nelle sessioni future dell'interfaccia della riga di comando per autenticare il client Helm con il repository di grafici di Registro Azure Container: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

Aggiungere un grafico al repositoryAdd a chart to the repository

In questo articolo si ottiene un grafico Helm esistente dal repository pubblico Helm stable.For this article, let's get an existing Helm chart from the public Helm stable repo. Il repository stable repository è un repository pubblico gestito che include i grafici di applicazione comuni.The stable repo is a curated, public repo that includes common application charts. I responsabili della manutenzione dei pacchetti possono inviare i grafici al repository stable repository per renderli disponibili in modo analogo a come l'hub Docker offre un registro pubblico per le immagini dei contenitori comuni.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. Il grafico scaricato dal repository pubblico stable può quindi essere inserito nel repository di Registro Azure Container privato.The chart downloaded from the public stable repo can then be pushed to your private Azure Container Registry repository. Nella maggior parte degli scenari è necessario compilare e caricare i propri grafici per le applicazioni sviluppate.In most scenarios, you would build and upload your own charts for the applications you develop. Per altre informazioni su come creare grafici Helm personalizzati, vedere sviluppo di grafici Helm.For more information on how to build your own Helm charts, see developing Helm charts.

Creare una directory in ~/acr-helme quindi scaricare il grafico stable/wordpress esistente:First, create a directory at ~/acr-helm, then download the existing stable/wordpress chart:

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

Elencare il grafico scaricato e prendere nota della versione di Wordpress inclusa nel nome del file.List the downloaded chart, and note the Wordpress version included in the filename. Il comando helm fetch stable/wordpress non ha specificato una versione particolare e pertanto è stata recuperata la versione più recente.The helm fetch stable/wordpress command didn't specify a particular version, so the latest version was fetched. Tutti i grafici Helm includono un numero di versione nel nome file che segue lo standard SemVer 2 .All Helm charts include a version number in the filename that follows the SemVer 2 standard. Nell'output di esempio seguente la versione del grafico Helm è 2.1.10:In the following example output, the Wordpress chart is version 2.1.10:

$ ls

wordpress-2.1.10.tgz

A questo punto, eseguire il push del grafico nel repository del grafico Helm in Azure Container Registry usando l'interfaccia della riga di comando di Azure AZ ACR Helm push .Now push the chart to your Helm chart repository in Azure Container Registry using the Azure CLI az acr helm push command. Specificare il nome del grafico Helm scaricato nel passaggio precedente, ad esempio 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

Dopo qualche istante, l'interfaccia della riga di comando di Azure segnala che il grafico è stato salvato, come illustrato nell'output di esempio seguente: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
}

Elencare i grafici nel repositoryList charts in the repository

Il client Helm mantiene una copia del contenuto del repository remoto memorizzata nella cache locale.The Helm client maintains a local cached copy of the contents of remote repositories. Le modifiche apportate a un repository remoto non aggiornino automaticamente l'elenco dei grafici disponibili noti in locale nel client Helm.Changes to a remote repository don't automatically update the list of available charts known locally by the Helm client. Quando si esegue una ricerca dei grafici nei repository, Helm usa l'indice locale memorizzata nella cache.When you search for charts across repositories, Helm uses it's local cached index. Per usare il grafico caricato nel passaggio precedente, l'indice del repository Helm locale deve essere aggiornato.To use the chart uploaded in the previous step, the local Helm repository index must be updated. È possibile reindicizzare i repository nel client Helm o usare l'interfaccia della riga di comando di Azure per aggiornare l'indice del repository.You can reindex the repositories in the Helm client, or use the Azure CLI to update the repository index. Ogni volta che si aggiunge un grafico al repository, è necessario completare questo passaggio:Each time you add a chart to your repository, this step must be completed:

az acr helm repo add

Con un grafico archiviato nel repository e l'indice aggiornato disponibile in locale, è possibile usare i normali comandi del client Helm per eseguire una ricerca o un'installazione.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. Per visualizzare tutti i grafici in un repository, usare helm search <acrName>.To see all the charts in your repository, use helm search <acrName>. Indicare il nome del proprio Registro Azure Container:Provide your own Azure Container Registry name:

helm search <acrName>

Il grafico Wordpress inserito nel passaggio precedente è elencato, come illustrato nell'output di esempio seguente: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.

È anche possibile elencare i grafici con l'interfaccia della riga di comando di Azure usando AZ ACR Helm list:You can also list the charts with the Azure CLI, using az acr helm list:

az acr helm list

Visualizzare le informazioni per un grafico HelmShow information for a Helm chart

Per visualizzare le informazioni per un grafico specifico nel repository, è possibile usare nuovamente il client Helm normale.To view information for a specific chart in the repo, you can again use the regular Helm client. Per visualizzare le informazioni per il grafico denominato wordpress, usare helm inspect.To see information for the chart named wordpress, use helm inspect.

helm inspect <acrName>/wordpress

Quando non viene specificato alcun numero di versione, viene usata la versione più recente.When no version number is provided, the latest version is used. Helm restituisce informazioni dettagliate relative al grafico, come illustrato nell'output di esempio sintetico seguente: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
[...]

È anche possibile visualizzare le informazioni per un grafico con l'interfaccia della riga di comando di Azure AZ ACR Helm Show .You can also show the information for a chart with the Azure CLI az acr helm show command. Anche in questo caso, per impostazione predefinita viene restituita la versione del grafico più recente.Again, the latest version of a chart is returned by default. È possibile aggiungere --version per elencare una versione specifica di un grafico, ad esempio 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

Installare un grafico Helm dal repositoryInstall a Helm chart from the repository

Il grafico Helm viene installato specificando il nome del repository e quindi il nome del grafico.The Helm chart in your repository is installed by specifying the repository name and then chart name. Usare il client Helm per installare il grafico Wordpress:Use the Helm client to install the Wordpress chart:

helm install <acrName>/wordpress

Suggerimento

Se si esegue il push nel repository di grafici Helm di Registro Azure Container e in seguito si torna in una nuova sessione dell'interfaccia della riga di comando,per il client Helm locale è necessario un token di autenticazione aggiornato.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. Per ottenere un nuovo token di autenticazione, usare il comando AZ ACR Helm repo add .To obtain a new authentication token, use the az acr helm repo add command.

Durante il processo di installazione vengono completati i passaggi seguenti:The following steps are completed during the install process:

  • Il client Helm cerca l'indice del repository locale.The Helm client searches the local repository index.
  • Il grafico corrispondente viene scaricato dal repository di Registro Azure Container.The corresponding chart is downloaded from the Azure Container Registry repository.
  • Il grafico viene distribuito usando Tiller nel cluster Kubernetes.The chart is deployed using the Tiller in your Kubernetes cluster.

L'output di esempio sintetico seguente illustra le risorse di Kubernetes distribuite tramite il grafico 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
[...]

Eliminare un grafico Helm dal repositoryDelete a Helm chart from the repository

Per eliminare un grafico dal repository, usare il comando AZ ACR Helm Delete .To delete a chart from the repository, use the az acr helm delete command. Specificare il nome del grafico, ad esempio wordpress, nonché la versione da eliminare, ad esempio 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

Se si intende eliminare tutte le versioni del grafico denominato, omettere il parametro --version.If you wish to delete all versions of the named chart, leave out the --version parameter.

Il grafico continua a essere restituito in helm search <acrName>.The chart continues to be returned in helm search <acrName>. Anche in questo caso il client Helm non aggiorna automaticamente l'elenco dei grafici disponibili in un repository.Again, the Helm client doesn't automatically update the list of available charts in a repository. Per aggiornare l'indice del repository del client Helm, usare di nuovo il comando AZ ACR Helm repo add :To update the Helm client repo index, use the az acr helm repo add command again:

az acr helm repo add

Passaggi successiviNext steps

In questo articolo è stato usato un grafico Helm esistente nel repository pubblico stable.This article used an existing Helm chart from the public stable repository. Per altre informazioni su come creare e distribuire grafici Helm, vedere sviluppo di grafici Helm.For more information on how to create and deploy Helm charts, see Developing Helm charts.

I grafici Helm possono essere usati come parte del processo di compilazione del contenitore.Helm charts can be used as part of the container build process. Per altre informazioni, vedere usare le attività container Registry di Azure.For more information, see use Azure Container Registry Tasks.

Per altre informazioni su come usare e gestire Container Registry di Azure, vedere le procedure consigliate.For more information on how to use and manage Azure Container Registry, see the best practices.