Windows Server-tároló üzembe helyezése Azure Kubernetes Service-fürtön a PowerShell 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 PowerShell 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.

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.

Erőforráscsoport létrehozásához használja a New-AzResourceGroup parancsmagot. Az alábbi példa létrehoz egy myResourceGroup nevű erőforráscsoportot az eastus régióban.

New-AzResourceGroup -Name myResourceGroup -Location eastus

Az alábbi mintakimenet azt mutatja, hogy az erőforráscsoport sikeresen létrejött:

ResourceGroupName : myResourceGroup
Location          : eastus
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup

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 -WindowsProfileAdminUserName paraméterek és -WindowsProfileAdminUserPassword 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ó összetettségi követelményeinek.
  • A csomópontkészlet a következőt használja VirtualMachineScaleSets: .

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

  1. Az alábbi paranccsal hozza létre a Windows Server-tárolók rendszergazdai hitelesítő adatait. Ez a parancssor kéri, hogy adjon meg egy WindowsProfileAdminUserName és WindowsProfileAdminUserPassword. 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.

    $AdminCreds = Get-Credential `
        -Message 'Please create the administrator credentials for your Windows Server containers'
    
  2. Hozza létre a fürtöt a New-AzAksCluster parancsmaggal, és adja meg a WindowsProfileAdminUserName paramétereket.WindowsProfileAdminUserPassword

    New-AzAksCluster -ResourceGroupName myResourceGroup `
        -Name myAKSCluster `
        -NodeCount 2 `
        -NetworkPlugin azure `
        -NodeVmSetType VirtualMachineScaleSets `
        -WindowsProfileAdminUserName $AdminCreds.UserName `
        -WindowsProfileAdminUserPassword $secureString `
        -GenerateSshKey
    

    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)][azure-cni] hálózati beépülő modult használó hálózati szabályzatot kell használnia. A -NetworkPlugin 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 Server-csomópontkészletet a New-AzAksNodePool parancsmaggal. Az alábbi parancs létrehoz egy új npwin nevű csomópontkészletet, és hozzáadja a myAKSClusterhez. A parancs a futtatáskor New-AzAksClusterlétrehozott alapértelmezett virtuális hálózat alapértelmezett alhálózatát is használja:

New-AzAksNodePool -ResourceGroupName myResourceGroup `
    -ClusterName myAKSCluster `
    -VmSetType VirtualMachineScaleSets `
    -OsType Windows `
    -Name npwin

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 kubectl , használhatja a Install-AzAzAksCliTool parancsmagot.

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

    Import-AzAksCredential -ResourceGroupName 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
    

    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
    aks-nodepool1-20786768-vmss000000   Ready    agent   22h   v1.27.7
    aks-nodepool1-20786768-vmss000001   Ready    agent   22h   v1.27.7
    aksnpwin000000                      Ready    agent   21h   v1.27.7
    

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égigvezetni az AKS-oktatóanyagot, törölje a fürtöt, hogy elkerülje az Azure-díjakat. Hívja meg a Remove-AzResourceGroup parancsmagot az erőforráscsoport, a tárolószolgáltatás és az összes kapcsolódó erőforrás eltávolításához.

Remove-AzResourceGroup -Name myResourceGroup

Feljegyzés

Az AKS-fürt rendszer által hozzárendelt felügyelt identitással lett létrehozva (az ebben 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.