Windows Server-tároló üzembe helyezése Azure Kubernetes Service-fürtön az Azure CLI használatával

Az Azure Kubernetes Service (AKS) egy felügyelt Kubernetes-szolgáltatás, amely lehetővé teszi a fürtök gyors üzembe helyezését és kezelését. Ebben a cikkben az Azure CLI használatával helyez üzembe egy Windows Server-tárolókat futtató AKS-fürtöt. Egy ASP.NET-mintaalkalmazást is üzembe helyezhet egy Windows Server-tárolóban a fürtön.

Feljegyzés

Az AKS-fürtök gyors üzembe helyezésének megkezdéséhez ez a cikk a csak kiértékelési célokra alapértelmezett beállításokkal rendelkező fürtök üzembe helyezésének lépéseit tartalmazza. Az éles üzemre kész fürtök üzembe helyezése előtt javasoljuk, hogy ismerkedjen meg az alapszintű referenciaarchitektúrával, és gondolja át, hogyan igazodik az üzleti követelményekhez.

Mielőtt elkezdené

A rövid útmutató feltételezi, hogy rendelkezik a Kubernetes használatára vonatkozó alapvető ismeretekkel. További információkért tekintse meg az Azure Kubernetes Service (AKS) Kubernetes alapfogalmait.

  • Ez a cikk az Azure CLI 2.0.64-es vagy újabb verzióját igényli. Az Azure Cloud Shell használata esetén a legújabb verzió már telepítve van.
  • Győződjön meg arról, hogy a fürt létrehozásához használt identitás rendelkezik a megfelelő minimális engedélyekkel. Az AKS-hez való hozzáféréssel és identitással kapcsolatos további részletekért tekintse meg az Azure Kubernetes Service (AKS) hozzáféréssel és identitással kapcsolatos lehetőségeit.
  • Ha több Azure-előfizetéssel rendelkezik, válassza ki a megfelelő előfizetés-azonosítót, amelyben az erőforrásokat az az account set paranccsal kell számlázni.

Erőforráscsoport létrehozása

Az Azure-erőforráscsoportok olyan logikai csoportok, amelyekben az Azure-erőforrások üzembe helyezése és kezelése történik. Erőforráscsoport létrehozásakor meg kell adnia egy helyet. Ez a hely tárolja az erőforráscsoport metaadatait, és ahol az erőforrások az Azure-ban futnak, ha nem ad meg másik régiót az erőforrás létrehozása során.

  • Hozzon létre egy erőforráscsoportot az az group create paranccsal. A következő példában létrehozunk egy myResourceGroup nevű erőforráscsoportot az eastus helyen. Adja meg ezt a parancsot és a cikkben szereplő egyéb parancsokat egy BASH-rendszerhéjba:

    az group create --name myResourceGroup --location eastus
    

    Az alábbi mintakimenet a sikeresen létrehozott erőforráscsoportot mutatja:

    {
      "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
      "location": "eastus",
      "managedBy": null,
      "name": "myResourceGroup",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "tags": null,
      "type": null
    }
    

AKS-fürt létrehozása

Ebben a szakaszban létrehozunk egy AKS-fürtöt a következő konfigurációval:

  • A fürt két csomóponttal van konfigurálva, hogy megbízhatóan működjön. A csomópont egy Olyan Azure-beli virtuális gép (VM), amely a Kubernetes-csomópont összetevőit és a tároló futtatókörnyezetét futtatja.
  • A --windows-admin-password paraméterek és --windows-admin-username paraméterek a fürt bármely Windows Server-csomópontjához beállítják a rendszergazdai hitelesítő adatokat, és meg kell felelniük a Windows Server jelszókövetelményeinek.
  • A csomópontkészlet a következőt használja VirtualMachineScaleSets: .

Az AKS-fürt Azure CLI-vel való létrehozásához kövesse az alábbi lépéseket:

  1. Hozzon létre egy felhasználónevet rendszergazdai hitelesítő adatokként a fürt Windows Server-csomópontjaihoz. Az alábbi parancsok egy felhasználónevet kérnek, és beállítják WINDOWS_U Standard kiadás RNAME értékre egy későbbi parancsban való használatra.

    echo "Please enter the username to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_USERNAME
    
  2. Hozzon létre egy jelszót az előző lépésben létrehozott rendszergazdai felhasználónévhez. A jelszónak legalább 14 karakter hosszúságúnak kell lennie, és meg kell felelnie a Windows Server jelszó összetettségi követelményeinek.

    echo "Please enter the password to use as administrator credentials for Windows Server nodes on your cluster: " && read WINDOWS_PASSWORD
    
  3. Hozza létre a fürtöt az az aks create paranccsal, és adja meg a paramétereket és --windows-admin-password a --windows-admin-username paramétereket. Az alábbi példaparancs létrehoz egy fürtöt az előző parancsban beállított WINDOWS_U Standard kiadás RNAME értékével. Másik lehetőségként megadhat egy másik felhasználónevet közvetlenül a paraméterben a WINDOWS_U Standard kiadás RNAME használata helyett.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --enable-addons monitoring \
        --generate-ssh-keys \
        --windows-admin-username $WINDOWS_USERNAME \
        --windows-admin-password $WINDOWS_PASSWORD \
        --vm-set-type VirtualMachineScaleSets \
        --network-plugin azure
    

    Néhány perc elteltével a parancs befejeződik, és JSON formátumú információkat ad vissza a fürtről. Esetenként a fürt kiépítése néhány percnél hosszabb időt is igénybe vehet. A kiépítés legfeljebb 10 percet hagyhat.

    Ha jelszó-érvényesítési hibát kap, és a megadott jelszó megfelel a hosszra és az összetettségre vonatkozó követelményeknek, próbálja meg létrehozni az erőforráscsoportot egy másik régióban. Ezután próbálja meg létrehozni a fürtöt az új erőforráscsoporttal.

    Ha nem ad meg rendszergazdai felhasználónevet és jelszót a csomópontkészlet létrehozásakor, a felhasználónév azureuserre van állítva, és a jelszó véletlenszerű értékre van állítva. További információ: Hogyan a fürtön lévő Windows Server-csomópontok rendszergazdai jelszavának módosítása?.

    A rendszergazdai felhasználónév nem módosítható, de módosíthatja azt a rendszergazdai jelszót, amelyet az AKS-fürt a Windows Server-csomópontokhoz használ az aks update. További információ: Windows Server-csomópontkészletek – gyakori kérdések.

    A Windows Server-tárolók csomópontkészleteit támogató AKS-fürt futtatásához a fürtnek egy Azure CNI (speciális) hálózati beépülő modult használó hálózati szabályzatot kell használnia. A --network-plugin azure paraméter az Azure CNI-t adja meg.

Csomópontkészlet hozzáadása

Alapértelmezés szerint a rendszer létrehoz egy AKS-fürtöt egy linuxos tárolókat futtató csomópontkészlettel. Hozzá kell adnia egy másik csomópontkészletet, amely Windows Server-tárolókat futtathat a Linux-csomópontkészlet mellett.

A Windows Server 2022 a Kubernetes 1.25.0-s és újabb verzióinak alapértelmezett operációs rendszere. A Windows Server 2019 a korábbi verziók alapértelmezett operációs rendszere. Ha nem ad meg egy adott operációsrendszer-termékváltozatot, az Azure létrehozza az új csomópontkészletet a fürt által használt Kubernetes-verzió alapértelmezett termékváltozatával.

Az alapértelmezett operációsrendszer-termékváltozat használatához hozza létre a csomópontkészletet operációsrendszer-termékváltozat megadása nélkül. A csomópontkészlet a fürt Kubernetes-verziója alapján van konfigurálva az alapértelmezett operációs rendszerhez.

Adjon hozzá egy Windows-csomópontkészletet a az aks nodepool add parancs használatával. Az alábbi parancs létrehoz egy új npwin nevű csomópontkészletet, és hozzáadja a myAKSClusterhez. A parancs a futtatáskor az aks createlétrehozott alapértelmezett virtuális hálózat alapértelmezett alhálózatát is használja. Nincs megadva operációsrendszer-termékváltozat, ezért a csomópontkészlet a fürt Kubernetes-verziója alapján az alapértelmezett operációs rendszerre van beállítva:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --os-type Windows \
    --name npwin \
    --node-count 1

Csatlakozás a fürthöz

A Kubernetes-fürtök kezeléséhez a Kubectl, a Kubernetes parancssori ügyfelet kell használnia. Ha az Azure Cloud Shellt használja, kubectl már telepítve van. Ha helyileg szeretné telepíteni és futtatni kubectl , hívja az az aks install-cli parancsot.

  1. Konfigurálja kubectl a Kubernetes-fürthöz való csatlakozást az az aks get-credentials paranccsal. Ez a parancs letölti a hitelesítő adatokat, és konfigurálja a Kubernetes parancssori felületét a használatukhoz.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Ellenőrizze a fürthöz való kapcsolatot a kubectl get paranccsal, amely a fürtcsomópontok listáját adja vissza.

    kubectl get nodes -o wide
    

    Az alábbi mintakimenet a fürt összes csomópontjának megjelenítése. Győződjön meg arról, hogy az összes csomópont állapota készen áll:

    NAME                                STATUS   ROLES   AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                         KERNEL-VERSION      CONTAINER-RUNTIME
    aks-nodepool1-20786768-vmss000000   Ready    agent   22h   v1.27.7   10.224.0.4    <none>        Ubuntu 22.04.3 LTS               5.15.0-1052-azure   containerd://1.7.5-1
    aks-nodepool1-20786768-vmss000001   Ready    agent   22h   v1.27.7   10.224.0.33   <none>        Ubuntu 22.04.3 LTS               5.15.0-1052-azure   containerd://1.7.5-1
    aksnpwin000000                      Ready    agent   20h   v1.27.7   10.224.0.62   <none>        Windows Server 2022 Datacenter   10.0.20348.2159     containerd://1.6.21+azure
    

    Feljegyzés

    Az egyes csomópontkészletek tároló-futtatókörnyezete a CONTAINER-RUNTIME területen jelenik meg. A tároló futtatókörnyezetének értékei a következővel containerd://kezdődnek, ami azt jelenti, hogy mindegyik a tároló futtatókörnyezetéhez használatos containerd .

Az alkalmazás üzembe helyezése

A Kubernetes-jegyzékfájl meghatározza a fürt kívánt állapotát, például hogy milyen tárolólemezképeket kell futtatni. Ebben a cikkben egy jegyzék használatával hozza létre a ASP.NET mintaalkalmazás Windows Server-tárolóban való futtatásához szükséges összes objektumot. Ez a jegyzék tartalmazza az ASP.NET mintaalkalmazás Kubernetes-üzembe helyezését , valamint egy külső Kubernetes-szolgáltatást az alkalmazás internetről való eléréséhez.

A ASP.NET mintaalkalmazás a .NET-keretrendszer minták részeként érhető el, és Windows Server-tárolóban fut. Az AKS megköveteli, hogy a Windows Server-tárolók a Windows Server 2019 vagy újabb rendszerképeken alapuljanak. A Kubernetes-jegyzékfájlnak egy csomópontválasztót is meg kell adnia, amely tájékoztatja az AKS-fürtöt, hogy futtassa a ASP.NET mintaalkalmazás podját egy Olyan csomóponton, amely Windows Server-tárolókat futtathat.

  1. Hozzon létre egy elnevezett sample.yaml fájlt, és másolja a következő YAML-definícióban.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: sample
      labels:
        app: sample
    spec:
      replicas: 1
      template:
        metadata:
          name: sample
          labels:
            app: sample
        spec:
          nodeSelector:
            "kubernetes.io/os": windows
          containers:
          - name: sample
            image: mcr.microsoft.com/dotnet/framework/samples:aspnetapp
            resources:
              limits:
                cpu: 1
                memory: 800M
            ports:
              - containerPort: 80
      selector:
        matchLabels:
          app: sample
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: sample
    spec:
      type: LoadBalancer
      ports:
      - protocol: TCP
        port: 80
      selector:
        app: sample
    

    A YAML-jegyzékfájlok lebontásához tekintse meg az üzembe helyezéseket és a YAML-jegyzékeket.

    Ha helyileg hozza létre és menti a YAML-fájlt, feltöltheti a jegyzékfájlt az alapértelmezett könyvtárba a CloudShellben a Fájlok feltöltése/letöltése gombra kattintva, majd kiválasztva a fájlt a helyi fájlrendszerből.

  2. Telepítse az alkalmazást a kubectl Apply paranccsal, és adja meg a YAML-jegyzék nevét.

    kubectl apply -f sample.yaml
    

    Az alábbi mintakimenet a sikeresen létrehozott üzembe helyezést és szolgáltatást mutatja be:

    deployment.apps/sample created
    service/sample created
    

Az alkalmazás tesztelése

Az alkalmazás futtatásakor egy Kubernetes-szolgáltatás elérhetővé teszi az alkalmazás előtérét az interneten. A folyamat eltarthat pár percig. Időnként a szolgáltatás kiépítése néhány percnél hosszabb időt is igénybe vehet. A kiépítés legfeljebb 10 percet hagyhat.

  1. Ellenőrizze az üzembe helyezett podok állapotát a kubectl get pods paranccsal. Az összes podot a folytatás előtt készítse Running el.

    kubectl get pods
    
  2. Figyelje a folyamatot a kubectl get service paranccsal az --watch argumentummal.

    kubectl get service sample --watch
    

    A kimenet kezdetben függőben lévőként jeleníti meg a mintaszolgáltatás KÜLSŐ IP-címét:

    NAME               TYPE           CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
    sample             LoadBalancer   10.0.37.27   <pending>     80:30572/TCP   6s
    

    Ha a külső IP-cím függőben lévőrőltényleges nyilvános IP-címre változik, állítsa CTRL-C le a kubectl figyelés folyamatát. Az alábbi mintakimenet a szolgáltatáshoz rendelt érvényes nyilvános IP-címet jeleníti meg:

    sample  LoadBalancer   10.0.37.27   52.179.23.131   80:30572/TCP   2m
    
  3. A mintaalkalmazás működés közbeni megtekintéséhez nyissa meg a webböngészőt a szolgáltatás külső IP-címére.

    Képernyőkép ASP.NET mintaalkalmazás böngészéséről.

Erőforrások törlése

Ha nem tervezi végigjárni az AKS-oktatóanyagot, törölje a fürtöt, hogy elkerülje az Azure-díjak felmerülését.

Törölje az erőforráscsoportot, a tárolószolgáltatást és az összes kapcsolódó erőforrást az az group delete paranccsal.

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

Feljegyzés

Az AKS-fürt rendszer által hozzárendelt felügyelt identitással lett létrehozva (ez a rövid útmutatóban használt alapértelmezett identitásbeállítás). Az Azure platform kezeli ezt az identitást, ezért nem igényel eltávolítást.

Következő lépések

Ebben a rövid útmutatóban üzembe helyezett egy Kubernetes-fürtöt, majd üzembe helyezett egy ASP.NET mintaalkalmazást egy Windows Server-tárolóban. Ez a mintaalkalmazás csak bemutató célokra készült, és nem képviseli a Kubernetes-alkalmazások ajánlott eljárásait. Az éles AKS-sel való teljes megoldások létrehozásáról az AKS-megoldásokkal kapcsolatos útmutatást talál.

Ha többet szeretne megtudni az AKS-ről, és végig szeretne járni egy teljes kód–üzembe helyezési példán, folytassa a Kubernetes-fürt oktatóanyagával.