Rövid útmutató: Fejlesztés az Azure Kubernetes Service-ben (AKS) a Helm használatával
A Helm egy nyílt forráskódú csomagolóeszköz, amely segít a Kubernetes-alkalmazások életciklusának telepítésében és kezelésében. A Linux-csomagkezelőkhöz, például az APT-hez és a Yumhoz hasonlóan a Helm kezeli a Kubernetes-diagramokat, amelyek előre konfigurált Kubernetes-erőforrások csomagjai.
Ebben a rövid útmutatóban a Helm használatával csomagolhat és futtathat alkalmazásokat az AKS-en. A meglévő alkalmazások Helm használatával történő telepítésével kapcsolatos információkért lásd : Meglévő alkalmazások telepítése a Helmrel az AKS-ben.
Előfeltételek
- Azure-előfizetés. Ha nem rendelkezik Azure-előfizetéssel, létrehozhat egy ingyenes fiókot.
- Az Azure CLI vagy az Azure PowerShell telepítve van.
- A Helm v3 telepítve van.
Azure Container Registry-adatbázis létrehozása
A tárolólemezképeket egy Azure Container Registryben (ACR) kell tárolnia, hogy az alkalmazást a Helm használatával futtathassa az AKS-fürtben. A beállításjegyzék nevének egyedinek kell lennie az Azure-ban, és 5–50 alfanumerikus karaktert kell tartalmaznia. Csak kisbetűk engedélyezettek. Az Alapszintű termékváltozat költséghatékony, fejlesztési célú belépési pontként szolgál, és kiegyenlített tárolási kapacitást és teljesítményt biztosít.
Azure-erőforráscsoport létrehozása az az group create paranccsal. A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot az eastus helyen.
az group create --name myResourceGroup --location eastus
Hozzon létre egy egyedi nevű Azure Container Registryt az az acr create parancs meghívásával. Az alábbi példa létrehoz egy myhelmacr nevű ACR-t az alapszintű termékváltozattal.
az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
A kimenetnek a következő sűrített példakimenethez hasonlóan kell kinéznie. Jegyezze fel az ACR loginServer-értékét egy későbbi lépésben.
{ "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" }
AKS-fürt létrehozása
Az új AKS-fürtnek hozzá kell férnie az ACR-hez a tárolólemezképek lekéréséhez és futtatásához.
Hozzon létre egy AKS-fürtöt az az aks create paranccsal a
--attach-acr
paraméterrel, hogy hozzáférést biztosítson a fürtnek az ACR-hez. Az alábbi példa létrehoz egy myAKSCluster nevű AKS-fürtöt, és hozzáférést biztosít a myhelmacr ACR-hez. Ügyeljen arra, hogy az ACR nevére cserélje le a helyéremyhelmacr
.az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
Csatlakozás az AKS-fürthöz
Kubernetes-fürt helyi csatlakoztatásához használja a Kubernetes parancssori ügyfelet, a Kubectl-et. kubectl
az Azure Cloud Shell használata esetén már telepítve van.
Telepítse
kubectl
helyileg az az aks install-cli paranccsal.az aks install-cli
Konfigurálja
kubectl
a Kubernetes-fürthöz való csatlakozást az az aks get-credentials paranccsal. Az alábbi parancs lekéri a myAKSCluster nevű AKS-fürt hitelesítő adatait a myResourceGroupban.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
A mintaalkalmazás letöltése
Ez a rövid útmutató az Azure Vote alkalmazást használja.
Klónozza az alkalmazást a GitHubról a
git clone
paranccsal.git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
Lépjen a
azure-vote
könyvtárra acd
paranccsal.cd azure-voting-app-redis/azure-vote/
A mintaalkalmazás létrehozása és leküldése az ACR-be
A rendszerképet az az acr buildelési paranccsal hozhatja létre és küldheti el az ACR-be . Az alábbi példa létrehoz egy azure-vote-front:v1 nevű képet, és leküldi a myhelmacr ACR-be. Ügyeljen arra, hogy az ACR nevére cserélje le a helyére
myhelmacr
.az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
Feljegyzés
Helm-diagramokat is importálhat az ACR-be. További információ: Helm-diagramok leküldése és lekérése egy Azure-tárolóregisztrációs adatbázisba.
A Helm-diagram létrehozása
Hozza létre a Helm-diagramot a
helm create
paranccsal.helm create azure-vote-front
Frissítse az azure-vote-front/Chart.yaml fájlt, hogy függőséget adjon hozzá a redis diagramhoz a
https://charts.bitnami.com/bitnami
diagramtárból, és frissítseappVersion
aztv1
a következő példában látható módon:Feljegyzés
Az útmutatóban látható tárolórendszerkép-verziókat teszteltük, hogy működjenek ezzel a példával, de lehet, hogy nem a legújabb verzió érhető el.
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
Frissítse a Helm-diagram függőségeit a
helm dependency update
paranccsal.helm dependency update azure-vote-front
Frissítse az azure-vote-front/values.yaml parancsot az alábbi módosításokkal.
- Adjon hozzá egy redis szakaszt a rendszerkép részleteinek, a tárolóportnak és az üzembe helyezés nevének beállításához.
- Adjon hozzá egy háttérnevet az előtérbeli résznek a Redis-üzembe helyezéshez való csatlakoztatásához.
- Az image.repository módosítása a gombra
<loginServer>/azure-vote-front
. - Az image.tag módosítása a következőre
v1
: . - Módosítsa a service.type típust LoadBalancerre.
Példa:
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 ...
Adjon hozzá egy szakaszt
env
az azure-vote-front/templates/deployment.yaml fájlhoz a redis-telepítés nevének átadásához.... 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 }} ...
A Helm-diagram futtatása
Telepítse az alkalmazást a Helm-diagram használatával a
helm install
parancs használatával.helm install azure-vote-front azure-vote-front/
Néhány percig tart, amíg a szolgáltatás egy nyilvános IP-címet ad vissza. A folyamat figyelése az
kubectl get service
argumentumot tartalmazó paranccsal--watch
.kubectl get service azure-vote-front --watch
Ha a szolgáltatás készen áll, az
EXTERNAL-IP
érték IP-címre változik<pending>
. Nyomja leCTRL+C
azkubectl
órafolyamat leállításához.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
Keresse meg az alkalmazás terheléselosztóját egy böngészőben a
<EXTERNAL-IP>
mintaalkalmazás megtekintéséhez.
A fürt törlése
Távolítsa el az erőforráscsoportot, az AKS-fürtöt, az Azure-tárolóregisztrációs adatbázist, az ACR-ben tárolt tárolórendszerképeket és az összes kapcsolódó erőforrást az az csoporttörlési paranccsal a
--yes
paraméterrel a törlés megerősítéséhez, és a--no-wait
paramétert, hogy a művelet befejezésére való várakozás nélkül térjen vissza a parancssorba.az group delete --name myResourceGroup --yes --no-wait
Feljegyzés
Ha az AKS-fürtöt rendszer által hozzárendelt felügyelt identitással hozta létre (ebben a rövid útmutatóban az alapértelmezett identitásbeállítás), az identitást a platform kezeli, és nem igényel eltávolítást.
Ha az AKS-fürtöt szolgáltatásnévvel hozta létre, a rendszer nem távolítja el a szolgáltatásnevet a fürt törlésekor. A szolgáltatásnév eltávolításához tekintse meg az AKS szolgáltatásnévvel kapcsolatos szempontokat és a törlést.
Következő lépések
A Helm használatáról további információt a Helm dokumentációjában talál.
Azure Kubernetes Service