Snabbstart: Utveckla på Azure Kubernetes Service (AKS) med Helm
Helm är ett paketeringsverktyg med öppen källkod som hjälper dig att installera och hantera livscykeln för Kubernetes-program. Precis som Linux-pakethanterare som APT och Yum hanterar Helm Kubernetes-diagram, som är paket med förkonfigurerade Kubernetes-resurser.
I den här snabbstarten använder du Helm för att paketera och köra ett program på AKS. Information om hur du installerar ett befintligt program med Helm finns i Installera befintliga program med Helm i AKS.
Förutsättningar
- En Azure-prenumeration. Om du inte har någon Azure-prenumeration kan du skapa ett kostnadsfritt konto.
- Azure CLI eller Azure PowerShell installerat.
- Helm v3 installerat.
Skapa ett Azure Container Registry
Du måste lagra dina containeravbildningar i ett Azure Container Registry (ACR) för att köra ditt program i AKS-klustret med hjälp av Helm. Registernamnet måste vara unikt i Azure och innehålla 5–50 alfanumeriska tecken. Endast gemener tillåts. Den grundläggande SKU:n är en kostnadsoptimerad startpunkt för utvecklingsändamål som ger en bra balans mellan lagring och dataflöde.
Skapa en Azure-resursgrupp med kommandot az group create . I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.
az group create --name myResourceGroup --location eastus
Skapa ett Azure Container Registry med ett unikt namn genom att anropa kommandot az acr create . I följande exempel skapas en ACR med namnet myhelmacr med Basic SKU.
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
Dina utdata bör se ut ungefär som följande komprimerade exempelutdata. Anteckna ditt loginServer-värde som din ACR ska använda i ett senare steg.
{ "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" }
Skapa ett AKS-kluster
Ditt nya AKS-kluster behöver åtkomst till din ACR för att hämta containeravbildningarna och köra dem.
Skapa ett AKS-kluster med kommandot az aks create med parametern
--attach-acr
för att ge klustret åtkomst till din ACR. I följande exempel skapas ett AKS-kluster med namnet myAKSCluster och ger det åtkomst till myhelmacr ACR. Se till att du ersättermyhelmacr
med namnet på din ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Ansluta till ditt AKS-kluster
Om du vill ansluta ett Kubernetes-kluster lokalt använder du Kubernetes kommandoradsklient kubectl. kubectl
är redan installerat om du använder Azure Cloud Shell.
Installera
kubectl
lokalt med kommandot az aks install-cli .az aks install-cli
Konfigurera
kubectl
för att ansluta till kubernetes-klustret med kommandot az aks get-credentials . Följande kommando hämtar autentiseringsuppgifter för AKS-klustret med namnet myAKSCluster i myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Hämta exempelprogrammet
Den här snabbstarten använder Azure Vote-programmet.
Klona programmet från GitHub med hjälp av
git clone
kommandot .git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Navigera till
azure-vote
katalogen med kommandotcd
.cd azure-voting-app-redis/azure-vote/
Skapa och skicka exempelprogrammet till ACR
Skapa och push-överför avbildningen till din ACR med kommandot az acr build . I följande exempel skapas en avbildning med namnet azure-vote-front:v1 och push-överför den till myhelmacr ACR. Se till att du ersätter
myhelmacr
med namnet på din ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Kommentar
Du kan också importera Helm-diagram till din ACR. Mer information finns i Skicka och hämta Helm-diagram till ett Azure-containerregister.
Skapa ditt Helm-diagram
Generera ditt Helm-diagram med hjälp av
helm create
kommandot .helm create azure-vote-front
Uppdatera azure-vote-front/Chart.yaml för att lägga till ett beroende för redis-diagrammet från
https://charts.bitnami.com/bitnami
diagramlagringsplatsen och uppdateraappVersion
tillv1
, enligt följande exempel:Kommentar
Containeravbildningsversionerna som visas i den här guiden har testats för att fungera med det här exemplet, men kanske inte den senaste versionen är tillgänglig.
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
Uppdatera dina Helm-diagramberoenden med hjälp av
helm dependency update
kommandot .helm dependency update azure-vote-front
Uppdatera azure-vote-front/values.yaml med följande ändringar.
- Lägg till ett redis-avsnitt för att ange avbildningsinformation, containerport och distributionsnamn.
- Lägg till ett servernamn för att ansluta klientdelsdelen till redis-distributionen.
- Ändra image.repository till
<loginServer>/azure-vote-front
. - Ändra image.tag till
v1
. - Ändra service.type till LoadBalancer.
Till exempel:
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 ...
Lägg till ett avsnitt i azure-vote-front/templates/deployment.yaml för att skicka namnet på redis-distributionen.
env
... 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 }} ...
Kör helm-diagrammet
Installera programmet med hjälp av Helm-diagrammet med hjälp av
helm install
kommandot .helm install azure-vote-front azure-vote-front/
Det tar några minuter för tjänsten att returnera en offentlig IP-adress. Övervaka förloppet med kommandot
kubectl get service
med--watch
argumentet .kubectl get service azure-vote-front --watch
När tjänsten är klar
EXTERNAL-IP
ändras värdet från<pending>
till en IP-adress. TryckCTRL+C
för att stoppakubectl
klockprocessen.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
Gå till programmets lastbalanserare i en webbläsare med hjälp av
<EXTERNAL-IP>
för att se exempelprogrammet.
Ta bort klustret
Ta bort resursgruppen, AKS-klustret, Azure-containerregistret, containeravbildningarna som lagras i ACR och alla relaterade resurser med kommandot az group delete med parametern
--yes
för att bekräfta borttagningen och parametern--no-wait
för att återgå till kommandotolken utan att vänta på att åtgärden ska slutföras.az group delete --name myResourceGroup --yes --no-wait
Kommentar
Om du skapade ditt AKS-kluster med en systemtilldelad hanterad identitet (standardidentitetsalternativet i den här snabbstarten) hanteras identiteten av plattformen och kräver inte borttagning.
Om du har skapat ditt AKS-kluster med tjänstens huvudnamn tas inte tjänstens huvudnamn bort när du tar bort klustret. Information om hur du tar bort tjänstens huvudnamn finns i överväganden och borttagning av AKS-tjänstens huvudnamn.
Nästa steg
Mer information om hur du använder Helm finns i Helm-dokumentationen.
Azure Kubernetes Service