Quickstart: Ontwikkelen in Azure Kubernetes Service (AKS) met Helm
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 Yum. Dit zijn pakketten met vooraf geconfigureerde Kubernetes-resources.
In deze quickstart gebruikt u Helm om een toepassing in AKS te verpakken en uit te voeren. Zie Bestaande toepassingen installeren met Helm in AKS voor meer informatie over het installeren van een bestaande toepassing met Behulp van Helm.
Vereisten
- Een Azure-abonnement. Als u geen Azure-abonnement hebt, kunt u een gratis account maken.
- Azure CLI of Azure PowerShell geïnstalleerd.
- Helm v3 geïnstalleerd.
Een Azure Container Registry maken
U moet uw containerinstallatiekopieën opslaan in een Azure Container Registry (ACR) om uw toepassing in uw AKS-cluster uit te voeren met behulp van Helm. De registernaam moet uniek zijn binnen Azure en mag 5-50 alfanumerieke tekens bevatten. Alleen kleine letters zijn toegestaan. De SKU Basic is een toegangspunt voor ontwikkelingsdoeleinden dat is geoptimaliseerd voor kosten, met een balans tussen opslag en doorvoer.
Maak een Azure-resourcegroep met behulp van de opdracht az group create . In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt op de locatie VS - oost.
az group create --name myResourceGroup --location eastus
Maak een Azure Container Registry met een unieke naam door de opdracht az acr create aan te roepen. In het volgende voorbeeld wordt een ACR met de naam myhelmacr gemaakt met de Basic SKU.
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
De uitvoer moet er ongeveer uitzien als in de volgende verkorte voorbeelduitvoer. Noteer uw loginServer-waarde voor uw ACR voor gebruik in een latere stap.
{ "adminUserEnabled": false, "creationDate": "2023-12-26T22:36:23.998425+00:00", "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr", "location": "eastus", "loginServer": "myhelmacr.azurecr.io", "name": "myhelmacr", "networkRuleSet": null, "provisioningState": "Succeeded", "resourceGroup": "myResourceGroup", "sku": { "name": "Basic", "tier": "Basic" }, "status": null, "storageAccount": null, "tags": {}, "type": "Microsoft.ContainerRegistry/registries" }
Een AKS-cluster maken
Uw nieuwe AKS-cluster heeft toegang nodig tot uw ACR om de containerinstallatiekopieën op te halen en uit te voeren.
Maak een AKS-cluster met behulp van de opdracht az aks create met de
--attach-acr
parameter om het cluster toegang te verlenen tot uw ACR. In het volgende voorbeeld wordt een AKS-cluster met de naam myAKSCluster gemaakt en toegang verleend tot de myhelmacr ACR. Zorg ervoor dat u vervangt doormyhelmacr
de naam van uw ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Verbinding maken met uw AKS-cluster
Als u een Kubernetes-cluster lokaal wilt verbinden, gebruikt u de Kubernetes-opdrachtregelclient kubectl. kubectl
is al geïnstalleerd als u Azure Cloud Shell gebruikt.
Installeer
kubectl
lokaal met behulp van de opdracht az aks install-cli .az aks install-cli
Configureer
kubectl
deze om verbinding te maken met uw Kubernetes-cluster met behulp van de opdracht az aks get-credentials . Met de volgende opdracht worden referenties opgehaald voor het AKS-cluster met de naam myAKSCluster in myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
De voorbeeldtoepassing downloaden
In deze quickstart wordt de Azure Vote-toepassing gebruikt.
Kloon de toepassing vanuit GitHub met behulp van de
git clone
opdracht.git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Navigeer naar de
azure-vote
map met behulp van decd
opdracht.cd azure-voting-app-redis/azure-vote/
De voorbeeldtoepassing bouwen en pushen naar ACR
Bouw en push de installatiekopieën naar uw ACR met behulp van de opdracht az acr build . In het volgende voorbeeld wordt een installatiekopieën met de naam azure-vote-front:v1 gebouwd en naar de myhelmacr ACR gepusht. Zorg ervoor dat u vervangt door
myhelmacr
de naam van uw ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Notitie
U kunt Helm-grafieken ook importeren in uw ACR. Zie Helm-grafieken pushen en ophalen naar een Azure-containerregister voor meer informatie.
Uw Helm-grafiek maken
Genereer uw Helm-grafiek met behulp van de
helm create
opdracht.helm create azure-vote-front
Werk azure-vote-front/Chart.yaml bij om een afhankelijkheid voor het redis-diagram toe te voegen vanuit de opslagplaats voor grafieken
https://charts.bitnami.com/bitnami
en bij te werkenappVersion
naarv1
, zoals wordt weergegeven in het volgende voorbeeld:Notitie
De versies van de containerinstallatiekopieën die in deze handleiding worden weergegeven, zijn getest om met dit voorbeeld te werken, maar zijn mogelijk niet de meest recente versie beschikbaar.
apiVersion: v2 name: azure-vote-front description: A Helm chart for Kubernetes dependencies: - name: redis version: 17.3.17 repository: https://charts.bitnami.com/bitnami ... # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. appVersion: v1
Werk uw Helm-grafiekafhankelijkheden bij met behulp van de
helm dependency update
opdracht.helm dependency update azure-vote-front
Werk azure-vote-front/values.yaml bij met de volgende wijzigingen.
- Voeg een redis-sectie toe om de afbeeldingsgegevens, containerpoort en implementatienaam in te stellen.
- Voeg een back-endnaam toe om het front-endgedeelte te verbinden met de redis-implementatie .
- Wijzig image.repository in
<loginServer>/azure-vote-front
. - Wijzig image.tag in
v1
. - Wijzig service.type in LoadBalancer.
Voorbeeld:
replicaCount: 1 backendName: azure-vote-backend-master redis: image: registry: mcr.microsoft.com repository: oss/bitnami/redis tag: 6.0.8 fullnameOverride: azure-vote-backend auth: enabled: false image: repository: myhelmacr.azurecr.io/azure-vote-front pullPolicy: IfNotPresent tag: "v1" ... service: type: LoadBalancer port: 80 ...
Voeg een
env
sectie toe aan azure-vote-front/templates/deployment.yaml om de naam van de redis-implementatie door te geven.... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: REDIS value: {{ .Values.backendName }} ...
Uw Helm-grafiek uitvoeren
Installeer uw toepassing met behulp van uw Helm-grafiek met behulp van de
helm install
opdracht.helm install azure-vote-front azure-vote-front/
Het duurt enkele minuten voordat de service een openbaar IP-adres retourneert. Bewaak de voortgang met behulp van de
kubectl get service
opdracht met het--watch
argument.kubectl get service azure-vote-front --watch
Wanneer de service gereed is, verandert de
EXTERNAL-IP
waarde van<pending>
een IP-adres. DrukCTRL+C
om hetkubectl
controleproces te stoppen.NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE azure-vote-front LoadBalancer 10.0.18.228 <pending> 80:32021/TCP 6s ... azure-vote-front LoadBalancer 10.0.18.228 52.188.140.81 80:32021/TCP 2m6s
Navigeer in een browser naar de load balancer van uw toepassing met behulp van de
<EXTERNAL-IP>
voorbeeldtoepassing.
Het cluster verwijderen
Verwijder uw resourcegroep, AKS-cluster, Azure-containerregister, containerinstallatiekopieën die zijn opgeslagen in de ACR en alle gerelateerde resources met behulp van de opdracht az group delete met de
--yes
parameter om verwijdering te bevestigen en de--no-wait
parameter om terug te keren naar de opdrachtprompt zonder te wachten tot de bewerking is voltooid.az group delete --name myResourceGroup --yes --no-wait
Notitie
Als u uw AKS-cluster hebt gemaakt met een door het systeem toegewezen beheerde identiteit (de standaardidentiteitsoptie in deze quickstart), wordt de identiteit beheerd door het platform en hoeft deze niet te worden verwijderd.
Als u uw AKS-cluster met een service-principal hebt gemaakt, wordt de service-principal niet verwijderd wanneer u het cluster verwijdert. Zie overwegingen en verwijdering van AKS-service-principals om de service-principal te verwijderen.
Volgende stappen
Zie de Helm-documentatie voor meer informatie over het gebruik van Helm.
Azure Kubernetes Service