Usare Helm per distribuire i contenitori in un cluster KubernetesUse Helm to deploy containers on a Kubernetes cluster

Avviso

Si sta visualizzando la documentazione per la versione precedente del servizio contenitore di Azure.You are viewing documentation for the old version of the Azure Container Service. Il servizio contenitore di Azure è in fase di aggiornamento con l'aggiunta di nuove opzioni di distribuzione, funzionalità di gestione migliorate e vantaggi economici in Kubernetes in Azure.Azure Container Service (AKS) is being updated to add new deployment options, enhanced management capabilities, and cost benefit to Kubernetes on Azure. Per iniziare a usare tali funzionalità in anteprima, vedere AKS documentation (Documentazione del servizio contenitore di Azure).Visit the AKS documentation to start working with these preview features.

Helm è uno strumento di creazione dei pacchetti open source che consente di installare e gestire il ciclo di vita delle applicazioni Kubernetes.Helm is an open-source packaging tool that helps you install and manage the lifecycle of Kubernetes applications. Analogamente ai responsabili di pacchetto Linux, ad esempio Apt-get e Yum, Helm viene usato per gestire i grafici Kubernetes, che sono pacchetti di risorse Kubernetes preconfigurati.Similar to Linux package managers such as Apt-get and Yum, Helm is used to manage Kubernetes charts, which are packages of preconfigured Kubernetes resources. In questo articolo viene illustrato come usare Helm in un cluster Kubernetes distribuito nel servizio contenitore di Azure.This article shows you how to work with Helm on a Kubernetes cluster deployed in Azure Container Service.

Helm presenta due componenti:Helm has two components:

  • L'interfaccia della riga di comando Helm è un client in esecuzione nel computer locale o nel cloudThe Helm CLI is a client that runs on your machine locally or in the cloud

  • Tiller è un server che viene eseguito sul cluster Kubernetes e gestisce il ciclo di vita delle applicazioni KubernetesTiller is a server that runs on the Kubernetes cluster and manages the lifecycle of your Kubernetes applications

PrerequisitiPrerequisites

Nozioni di base di HelmHelm basics

Per visualizzare informazioni sul cluster Kubernetes in cui si installa Tiller e si distribuiscono le applicazioni, digitare il comando seguente:To view information about the Kubernetes cluster that you are installing Tiller and deploying your applications to, type the following command:

kubectl cluster-info 

kubectl cluster-info

Dopo aver installato Helm, installare Tiller sul cluster Kubernetes digitando il comando seguente:After you have installed Helm, install Tiller on your Kubernetes cluster by typing the following command:

helm init --upgrade

Dopo che l'operazione viene completata correttamente, viene visualizzato un output simile al seguente:When it completes successfully, you see output like the following:

Installazione di Tiller

Per visualizzare tutti i grafici di Helm disponibili nel repository, digitare il comando seguente:To view all the Helm charts available in the repository, type the following command:

helm search 

Viene visualizzato un output simile al seguente:You see output like the following:

Ricerca Helm

Per aggiornare i grafici in modo da ottenere le versioni più recenti, digitare:To update the charts to get the latest versions, type:

helm repo update 

Distribuire un grafico controller in ingresso NginxDeploy an Nginx ingress controller chart

Per distribuire un grafico controller in ingresso Nginx, digitare un singolo comando:To deploy an Nginx ingress controller chart, type a single command:

helm install stable/nginx-ingress 

Distribuire il controller in ingresso

Se si digita kubectl get svc per visualizzare tutti i servizi che sono in esecuzione nel cluster, si noti che al controller in ingresso viene assegnato un indirizzo IP.If you type kubectl get svc to view all services that are running on the cluster, you see that an IP address is assigned to the ingress controller. Mentre è in corso l'assegnazione, viene visualizzato <pending>.(While the assignment is in progress, you see <pending>. Il completamento dell'operazione richiede alcuni minuti.It takes a couple of minutes to complete.)

Dopo che è stato assegnato l'indirizzo IP, passare al valore dell'indirizzo IP esterno per visualizzare l'esecuzione back-end di Nginx.After the IP address is assigned, navigate to the value of the external IP address to see the Nginx backend running.

Indirizzo IP in ingresso

Per visualizzare un elenco dei grafici installati nel cluster, digitare:To see a list of charts installed on your cluster, type:

helm list 

È possibile abbreviare il comando in helm ls.You can abbreviate the command to helm ls.

Distribuire un client e un grafico di MariaDBDeploy a MariaDB chart and client

Distribuire ora un grafico MariaDB e un client MariaDB per connettersi al database.Now deploy a MariaDB chart and a MariaDB client to connect to the database.

Per distribuire il grafico MariaDB, digitare il comando seguente:To deploy the MariaDB chart, type the following command:

helm install --name v1 stable/mariadb

dove --name è un tag usato per le versioni.where --name is a tag used for releases.

Suggerimento

Se la distribuzione non riesce, eseguire helm repo update e riprovare.If the deployment fails, run helm repo update and try again.

Per visualizzare tutti i grafici distribuiti nel cluster, digitare:To view all the charts deployed on your cluster, type:

helm list

Per visualizzare tutte le distribuzioni in esecuzione nel cluster, digitare:To view all deployments running on your cluster, type:

kubectl get deployments 

Infine, per eseguire un pod per accedere al client, digitare:Finally, to run a pod to access the client, type:

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

Per connettersi al client, digitare il comando seguente sostituendo v1-mariadb con il nome della distribuzione:To connect to the client, type the following command, replacing v1-mariadb with the name of your deployment:

sudo mysql –h v1-mariadb

È ora possibile usare i comandi standard di SQL per creare database, tabelle e così via. Ad esempio, Create DATABASE testdb1; crea un database vuoto.You can now use standard SQL commands to create databases, tables, etc. For example, Create DATABASE testdb1; creates an empty database.

Passaggi successiviNext steps