Delen via


Bestaande toepassingen installeren met Helm

Van toepassing op: AKS op Windows Server

In dit artikel wordt beschreven hoe u Helm configureert en gebruikt voor het installeren en beheren van Kubernetes-toepassingen in een Kubernetes-cluster in AKS op Windows Server.

Helm is een opensource-pakketprogramma waarmee u de levenscyclus van Kubernetes-toepassingen kunt installeren en beheren. Helm beheert Kubernetes-grafieken, vergelijkbaar met Linux-pakketbeheerders, zoals APT en Sum, die pakketten van vooraf geconfigureerde Kubernetes-resources zijn.

Voordat u begint

Controleer of u de volgende vereisten hebt ingesteld:

  • Een Kubernetes-cluster met ten minste één Linux-werkknooppunt dat actief is.
  • U hebt uw lokale kubectl omgeving zo geconfigureerd dat deze verwijst naar uw cluster. U kunt de Opdracht Get-AksHciCredential PowerShell gebruiken om toegang te krijgen tot uw cluster met behulp van kubectl.
  • Helm v3-opdrachtregel en -vereisten zijn geïnstalleerd.
  • U kunt Azure CLI gebruiken om opdrachten uit te voeren, als u dit liever hebt dan PowerShell.

Belangrijk

Helm is bedoeld om te worden uitgevoerd op Linux-knooppunten. Als uw cluster Windows Server-knooppunten heeft, moet u ervoor zorgen dat Helm-pods alleen worden uitgevoerd op Linux-knooppunten. U moet er ook voor zorgen dat de Helm-charts die u installeert, zijn ingesteld om op de juiste knooppunten te draaien. De opdrachten in dit artikel gebruiken knooppuntkiezers om ervoor te zorgen dat pods zijn gepland op de juiste knooppunten, maar niet in alle Helm-grafieken wordt een knooppuntkiezer weergegeven. U kunt ook andere opties, zoals taints, in uw cluster gebruiken.

Uw versie van Helm controleren

Gebruik de helm version opdracht om te controleren of Helm 3 is geïnstalleerd:

helm version

In het volgende voorbeeld ziet u dat Helm versie 3.5.4 is geïnstalleerd:

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

Een toepassing installeren met Helm v3

Helm opslagplaatsen toevoegen

Gebruik de helm repo-opdracht om de ingress-nginx repository toe te voegen.

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

Helm-grafieken zoeken

Helm-grafieken worden gebruikt voor het implementeren van toepassingen in een Kubernetes-cluster. Als u wilt zoeken naar vooraf gemaakte Helm-grafieken, gebruikt u de Helm-zoekopdracht :

helm search repo ingress-nginx

In de volgende verkorte voorbeelduitvoer ziet u enkele van de Helm-grafieken die beschikbaar zijn voor gebruik:

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

Gebruik de opdracht helm repo update om de lijst met charts bij te werken.

helm repo update

In het volgende voorbeeld ziet u een geslaagde opslagplaatsupdate:

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!

Helm-grafieken uitvoeren

Als u grafieken wilt installeren met Helm, gebruikt u de helm-installatieopdracht en geeft u een releasenaam en de naam van de grafiek op die u wilt installeren. Als u de installatie van een Helm-grafiek in actie wilt zien, installeert u een eenvoudige nginx-implementatie met behulp van een Helm-grafiek.

De volgende opdracht wordt twee keer gegeven, één voor gebruik in Azure CLI en één voor gebruik in een PowerShell-console:

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

In de volgende verkorte voorbeelduitvoer ziet u de implementatiestatus van de Kubernetes-resources die door de Helm-grafiek zijn gemaakt:

>     --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'
...

Gebruik de kubectl get services opdracht om het EXTERNE IP-adres van uw service op te halen:

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

Met de volgende opdracht ziet u bijvoorbeeld het EXTERNAL-IP-adres voor de service 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

Releases opsommen

Gebruik de helm list opdracht om een lijst met releases weer te geven die op uw cluster zijn geïnstalleerd.

helm list

In het volgende voorbeeld ziet u de release my-nginx-ingress die in de vorige stap is geïmplementeerd:

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 

Hulpmiddelen opschonen

Wanneer u een Helm-grafiek implementeert, worden er veel Kubernetes-resources gemaakt. Deze resources omvatten pods, implementaties en diensten. Als u deze resources wilt opschonen, gebruikt u de opdracht Helm-verwijdering en geeft u de releasenaam op, zoals u in de vorige helm list opdracht hebt gevonden:

helm uninstall my-nginx-ingress

In de volgende voorbeelduitvoer ziet u dat de release my-nginx-ingress is verwijderd:

release "my-nginx-ingress" uninstalled

Volgende stappen

Zie de Helm-documentatie voor meer informatie over het beheren van Kubernetes-toepassingsimplementaties met Helm.