Rychlý start: Vývoj ve službě Azure Kubernetes Service (AKS) s využitím Helmu
Helm je opensourcový nástroj pro balení, který vám pomůže nainstalovat a spravovat životní cyklus aplikací Kubernetes. Podobně jako správci balíčků pro Linux, jako je APT a Yum, helm spravuje grafy Kubernetes, což jsou balíčky předem nakonfigurovaných prostředků Kubernetes.
V tomto rychlém startu použijete Helm k zabalení a spuštění aplikace v AKS. Informace o instalaci existující aplikace pomocí Nástroje Helm naleznete v tématu Instalace existujících aplikací pomocí Nástroje Helm v AKS.
Požadavky
- Předplatné Azure. Pokud ještě nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
- Nainstalovali jsme Azure CLI nebo Azure PowerShell .
- Nainstalovali jsme Helm v3.
Vytvoření registru služby Azure Container Registry
Ke spuštění aplikace v clusteru AKS pomocí Helmu musíte ukládat image kontejnerů do služby Azure Container Registry (ACR). Název vašeho registru musí být v rámci Azure jedinečný a musí obsahovat 5 až 50 alfanumerických znaků. Jsou povoleny pouze malá písmena. Skladová položka Basic představuje vstupní bod optimalizovaný z hlediska nákladů pro účely vývoje a poskytuje vyváženou kombinaci úložiště a propustnosti.
Pomocí příkazu az group create vytvořte skupinu prostředků Azure. Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.
az group create --name myResourceGroup --location eastus
Vytvořte službu Azure Container Registry s jedinečným názvem zavoláním příkazu az acr create . Následující příklad vytvoří ACR s názvem myhelmacr s skladovou položku Basic .
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
Výstup by měl vypadat podobně jako následující zhuštěný ukázkový výstup. Poznamenejte si hodnotu loginServer , kterou má ACR použít v pozdějším kroku.
{ "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" }
Vytvoření clusteru AKS
Váš nový cluster AKS potřebuje přístup k ACR, aby načítá image kontejneru a spustil je.
Vytvořte cluster AKS pomocí příkazu az aks create s parametrem
--attach-acr
, který clusteru udělí přístup k vašemu ACR. Následující příklad vytvoří cluster AKS s názvem myAKSCluster a udělí mu přístup k ACR myhelmacru . Nezapomeňte nahraditmyhelmacr
názvem služby ACR.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Připojení ke clusteru AKS
K místnímu připojení clusteru Kubernetes použijete klienta příkazového řádku Kubernetes kubectl. kubectl
je už nainstalovaný, pokud používáte Azure Cloud Shell.
Místní instalaci
kubectl
pomocí příkazu az aks install-cli .az aks install-cli
Nakonfigurujte
kubectl
připojení ke clusteru Kubernetes pomocí příkazu az aks get-credentials . Následující příkaz získá přihlašovací údaje pro cluster AKS s názvem myAKSCluster v myResourceGroup.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Stažení ukázkové aplikace
V tomto rychlém startu se používá aplikace Azure Vote.
Naklonujte aplikaci z GitHubu
git clone
pomocí příkazu.git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Pomocí příkazu přejděte do
azure-vote
adresářecd
.cd azure-voting-app-redis/azure-vote/
Sestavení a nasdílení ukázkové aplikace do ACR
Sestavte a nasdílejte image do služby ACR pomocí příkazu az acr build . Následující příklad sestaví image s názvem azure-vote-front:v1 a nasdílí ji do ACR myhelmacru . Nezapomeňte nahradit
myhelmacr
názvem služby ACR.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Poznámka:
Do služby ACR můžete také importovat grafy Helm. Další informace najdete v tématu Vložení a vyžádání chartů Helm do registru kontejneru Azure.
Vytvoření chartu Helm
Vygenerujte chart Helm pomocí
helm create
příkazu.helm create azure-vote-front
Aktualizujte azure-vote-front/Chart.yaml a přidejte závislost pro graf Redis z
https://charts.bitnami.com/bitnami
úložiště grafů a aktualizujteappVersion
nav1
, jak je znázorněno v následujícím příkladu:Poznámka:
Verze imagí kontejneru uvedené v této příručce byly testovány tak, aby fungovaly s tímto příkladem, ale nemusí být nejnovější dostupnou verzí.
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
Pomocí příkazu aktualizujte závislosti chartu
helm dependency update
Helm.helm dependency update azure-vote-front
Aktualizujte azure-vote-front/values.yaml následujícími změnami.
- Přidejte oddíl Redis pro nastavení podrobností o imagi, portu kontejneru a názvu nasazení.
- Přidejte back-endName pro připojení front-endové části k nasazení Redis.
- Změňte image.repository na
<loginServer>/azure-vote-front
. - Změňte image.tag na
v1
. - Změňte service.type na LoadBalancer.
Příklad:
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 ...
env
Přidejte do azure-vote-front/templates/deployment.yaml oddíl, který předá název nasazení Redis.... 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 }} ...
Spuštění chartu Helm
Pomocí příkazu nainstalujte aplikaci pomocí chartu
helm install
Helm.helm install azure-vote-front azure-vote-front/
Vrácení veřejné IP adresy trvá několik minut. Sledujte průběh pomocí
kubectl get service
příkazu s argumentem--watch
.kubectl get service azure-vote-front --watch
Až bude služba připravená,
EXTERNAL-IP
hodnota se změní z<pending>
IP adresy. StisknutímCTRL+C
zastavíte proces kukátkukubectl
.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
V prohlížeči přejděte k nástroji pro vyrovnávání zatížení vaší aplikace pomocí
<EXTERNAL-IP>
ukázkové aplikace.
Odstranění clusteru
Odeberte skupinu prostředků, cluster AKS, registr kontejneru Azure, image kontejnerů uložené v ACR a všechny související prostředky pomocí příkazu az group delete s parametrem k
--yes
potvrzení odstranění a parametru--no-wait
, který se vrátí do příkazového řádku bez čekání na dokončení operace.az group delete --name myResourceGroup --yes --no-wait
Poznámka:
Pokud jste cluster AKS vytvořili se spravovanou identitou přiřazenou systémem (výchozí možnost identity v tomto rychlém startu), identita se spravuje platformou a nevyžaduje odebrání.
Pokud jste vytvořili cluster AKS s instančním objektem, instanční objekt se při odstranění clusteru neodebere. Pokud chcete odebrat instanční objekt, podívejte se na důležité informace a odstranění instančního objektu AKS.
Další kroky
Další informace o používání Nástroje Helm najdete v dokumentaci k Helmu.
Azure Kubernetes Service