Condividi tramite


Installare le applicazioni esistenti con Helm

Si applica a: Azure Kubernetes Service (AKS) su Azure Local 22H2, Azure Kubernetes Service (AKS) su Windows Server

Questo articolo descrive come configurare e usare Helm per installare e gestire le applicazioni Kubernetes in un cluster Kubernetes nel servizio Azure Kubernetes abilitato da Azure Arc.

Helm è uno strumento per la creazione di pacchetti open source che consente di installare e gestire il ciclo di vita delle applicazioni Kubernetes. Analogamente agli strumenti di gestione pacchetti Linux, ad esempio APT e Sum, Helm gestisce i grafici Kubernetes, che sono pacchetti di risorse Kubernetes preconfigurati.

Operazioni preliminari

Verificare di aver configurato i requisiti seguenti:

Importante

Helm è progettato per l'esecuzione in nodi Linux. Se il cluster dispone di nodi Windows Server, è necessario assicurarsi che i pod Helm siano pianificati per l'esecuzione solo nei nodi Linux. È anche necessario assicurarsi che tutti i grafici Helm installati siano pianificati per l'esecuzione nei nodi corretti. I comandi in questo articolo usano i selettori di nodo per assicurarsi che i pod siano pianificati nei nodi corretti, ma non tutti i grafici Helm espongono un selettore di nodo. È anche possibile usare altre opzioni, ad esempio taints, nel cluster.

Verificare la versione di Helm

Usare il helm version comando per verificare che Helm 3 sia installato:

helm version

L'esempio seguente mostra helm versione 3.5.4 installata:

version.BuildInfo{Version:"v3.5.4", GitCommit:"1b5edb69df3d3a08df77c9902dc17af864ff05d1", GitTreeState:"clean", GoVersion:"go1.15.11"}

Installare un'applicazione con Helm v3

Aggiungere repository Helm

Usare il comando helm repo per aggiungere il repository in ingresso-nginx .

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

Trovare i grafici Helm

I grafici Helm vengono usati per distribuire applicazioni in un cluster Kubernetes. Per cercare i grafici Helm già creati, usare il comando helm search:

helm search repo ingress-nginx

L'output di esempio sintetico seguente mostra alcuni dei grafici di Helm disponibili per l'uso:

NAME                            CHART VERSION   APP VERSION     DESCRIPTION                                       
ingress-nginx/ingress-nginx     3.30.0          0.46.0          Ingress controller for Kubernetes using NGINX a...

Per aggiornare l'elenco dei grafici, usare il comando helm repo update.

helm repo update

L'esempio seguente illustra un aggiornamento riuscito del repository:

Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
Update Complete. Happy Helming!

Eseguire i grafici Helm

Per installare i grafici con Helm, usare il comando helm install e specificare un nome di versione e il nome del grafico da installare. Per visualizzare un'installazione del grafico Helm in azione, installare una distribuzione nginx di base usando un grafico Helm.

Il comando seguente viene fornito due volte, uno per l'uso nell'interfaccia della riga di comando di Azure e uno per l'uso in una console di PowerShell:

helm install my-nginx-ingress ingress-nginx/ingress-nginx \
    --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
    --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux
helm install my-nginx-ingress ingress-nginx/ingress-nginx `
    --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux `
    --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux

L'output di esempio sintetico seguente mostra lo stato della distribuzione delle risorse Kubernetes create dal grafico Helm:

>     --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux \
>     --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux

NAME: my-nginx-ingress
LAST DEPLOYED: Fri May 14 17:43:27 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
The nginx-ingress controller has been installed.
It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status by running 'kubectl --namespace default get services -o wide -w my-nginx-ingress-ingress-nginx-controller'
...

Usare il kubectl get services comando per ottenere l'indirizzo EXTERNAL-IP del servizio:

kubectl --namespace default get services -o wide -w my-nginx-ingress-ingress-nginx-controller

Ad esempio, il comando seguente mostra external-IP per il servizio my-nginx-ingress-ingress-nginx-controller:

NAME                                        TYPE           CLUSTER-IP   EXTERNAL-IP      PORT(S)                      AGE   SELECTOR
my-nginx-ingress-ingress-nginx-controller   LoadBalancer   10.98.53.215 <EXTERNAL-IP>    80:31553/TCP,443:30784/TCP   72s   app.kubernetes.io/component=controller,app.kubernetes.io/instance=my-nginx-ingress,app.kubernetes.io/name=ingress-nginx

Elencare le versioni

Per visualizzare un elenco delle versioni installate nel cluster, usare il helm list comando .

helm list

L'esempio seguente illustra la versione my-nginx-ingress distribuita nel passaggio precedente:

NAME                NAMESPACE    REVISION    UPDATED                                 STATUS      CHART                   APP VERSION
my-nginx-ingress    default      1           2021-05-14 17:43:27.1670709 +0000 UTC    deployed    nginx-ingress-3.30.0    0.46.0 

Pulire le risorse

Quando si distribuisce un grafico Helm, vengono create numerose risorse Kubernetes. Queste risorse includono pod, distribuzioni e servizi. Per pulire queste risorse, usare il comando helm uninstall e specificare il nome della versione, come illustrato nel comando precedente helm list :

helm uninstall my-nginx-ingress

L'output di esempio seguente mostra che la versione my-nginx-ingress è stata disinstallata:

release "my-nginx-ingress" uninstalled

Passaggi successivi

Per altre informazioni sulla distribuzione delle applicazioni Kubernetes con Helm, vedere la documentazione di Helm.