Rövid útmutató: Fejlesztés az Azure Kubernetes Service (AKS) hálózaton, 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 létrehozása

A konténerképeket az Azure Container Registry (ACR) rendszerben kell tárolni ahhoz, hogy az alkalmazás az AKS-fürtben Helm használatával fusson. A beállításjegyzék nevének egyedinek kell lennie Azure belül, é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. Hozzon létre egy Azure erőforráscsoportot a 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 Registry a 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 a loginServer értékét az ACR-hez, hogy később használhassa.

    {
      "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 parancs és a --attach-acr paraméter segítségével, hogy hozzáférést biztosítson a fürt számára 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. Cserélje le a myhelmacr címkét az ACR nevére.

    az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
    

Csatlakozás az AKS-klaszterhez

Kubernetes-fürt helyi csatlakoztatásához használja a Kubernetes parancssori ügyfelet, a Kubectl-et. kubectl már telepítve van, ha Azure Cloud Shell használ.

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

    az aks install-cli
    
  2. Konfigurálja kubectl a saját Kubernetes-klaszteréhez való csatlakozáshoz az 'az aks get-credentials' paranccsal. Az alábbi parancs lekéri a myAKSCluster nevű AKS-fürt hitelesítő adatait a myResourceGroup-ban.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

A mintaalkalmazás letöltése

Ez a rövid útmutató a Azure Szavazás alkalmazást használja.

  1. Klónozza az alkalmazást a GitHub-ró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 az acr build parancs használatával hozza létre és küldje el a rendszerképet 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. Cserélje le a myhelmacr címkét az ACR nevére.

    az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
    

Megjegyzés

Helm-diagramokat is importálhat az ACR-be. További információ: Push és pull Helm-diagramok 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 hozzáadjon egy függőséget a redis charthoz a https://charts.bitnami.com/bitnami charttárból, és frissítse a appVersion elemet v1-ra, ahogyan az alábbi példában látható.

    Megjegyzé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 kép részleteinek, a konténer portjának és az üzembe helyezés nevének beállításához.
    • Adjon hozzá egy backendName-et az előtér részének a redis telepítéséhez való összekapcsolásához.
    • Az image.repository módosítása erre: <loginServer>/azure-vote-front.
    • A image.tag-t v1-re kell módosítani.
    • Módosítsa a service.type értékét LoadBalancer-re.

    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 env szakaszt 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. Használja a kubectl get service parancsot a --watch argumentummal a folyamat figyeléséhez.

    kubectl get service azure-vote-front --watch
    

    Ha a szolgáltatás készen áll, az EXTERNAL-IP érték <pending>-ről IP-címre változik. 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 konténerképeket és az összes kapcsolódó erőforrást az az csoport törlése parancsot a --yes paraméterrel, hogy megerősítse a törlést, és a --no-wait paraméterrel, hogy anélkül térjen vissza a parancssorba, hogy megvárná a művelet befejezését.

    az group delete --name myResourceGroup --yes --no-wait
    

Megjegyzés

Ha az AKS-fürtöt egy rendszer által hozzárendelt felügyelt identitással hozta létre (ami az alapértelmezett beállítás ebben a gyorsútmutatóban), az identitást a platform kezeli, így nincs szükség annak eltávolítására.

Ha az AKS-fürtöt szolgáltatási főazonosítóval hozta létre, a szolgáltatási főazonosító nem kerül törlésre a fürt eltávolításakor. 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.