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:
- Un cluster Kubernetes con almeno un nodo di lavoro Linux in esecuzione.
- L'ambiente locale
kubectl
è stato configurato in modo che punti al cluster. È possibile usare il comando Get-AksHciCredential di PowerShell per accedere al cluster usandokubectl
. - Vengono installati i prerequisiti e la riga di comando Helm v3 .
- È possibile usare l'interfaccia della riga di comando di Azure per eseguire comandi, se si preferisce usare PowerShell.
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.