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

  1. 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
    
  2. 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ére myhelmacr .

    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.

  1. Telepítse kubectl helyileg az az aks install-cli paranccsal.

    az aks install-cli
    
  2. 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.

  1. Klónozza az alkalmazást a GitHubról a git clone paranccsal.

    git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
    
  2. Lépjen a azure-vote könyvtárra a cd 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

  1. Hozza létre a Helm-diagramot a helm create paranccsal.

    helm create azure-vote-front
    
  2. 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ítse appVersion azt v1a 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
    
  3. Frissítse a Helm-diagram függőségeit a helm dependency update paranccsal.

    helm dependency update azure-vote-front
    
  4. 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őrev1: .
    • 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
    ...
    
  5. 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

  1. 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/
    
  2. 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 le CTRL+C az kubectl ó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
    
  3. 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.