Share via


Azure Spot csomópontkészlet hozzáadása egy Azure Kubernetes Service-fürthöz

Ebben a cikkben egy másodlagos spot csomópontkészletet ad hozzá egy meglévő Azure Kubernetes Service-fürthöz.

A kihasználatlan csomópontkészlet egy Azure Spot virtuálisgép-méretezési csoport által támogatott csomópontkészlet. Az AKS-fürtben lévő kihasználatlan virtuális gépek jelentős költségmegtakarítással kihasználhatják a kihasználatlan Azure-kapacitást. A rendelkezésre álló kihasználatlan kapacitás mennyisége számos tényezőtől függ, például csomópontmérettől, régiótól és napközbentól.

Kihasználatlan csomópontkészlet üzembe helyezésekor az Azure lefoglalja a kihasználatlan csomópontokat, ha rendelkezésre áll kapacitás, és üzembe helyez egy kihasználatlan méretezési csoportot, amely egyetlen alapértelmezett tartományban állítja vissza a kihasználatlan csomópontkészletet. A kihasználatlan csomópontokhoz nincs SLA. Nincsenek magas rendelkezésre állási garanciák. Ha az Azure-nak vissza kell igényelnie a kapacitást, az Azure-infrastruktúra kiüríti a kihasználatlan csomópontokat.

A kihasználatlan csomópontok nagyszerűek olyan számítási feladatokhoz, amelyek képesek kezelni a megszakításokat, a korai leállásokat vagy a kilakoltatásokat. Például a számítási feladatok, például a kötegelt feldolgozási feladatok, a fejlesztési és tesztelési környezetek, valamint a nagy számítási feladatok jó jelöltek lehetnek a kihasználatlan csomópontkészletek ütemezésére.

Mielőtt elkezdené

  • Ez a cikk a Kubernetes és az Azure Load Balancer fogalmainak alapszintű megértését feltételezi. További információkért tekintse meg az Azure Kubernetes Service (AKS) Kubernetes alapfogalmait.
  • Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
  • Amikor létrehoz egy fürtöt, hogy kihasználatlan csomópontkészletet használjon, a fürtnek virtuálisgép-méretezési csoportokat kell használnia a csomópontkészletekhez és a standard termékváltozatú terheléselosztóhoz. A fürt létrehozása után egy másik csomópontkészletet is fel kell vennie, amelyet az oktatóanyag ismertet.
  • Ehhez a cikkhez az Azure CLI 2.14-es vagy újabb verzióját kell futtatnia. A verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.

Korlátozások

A kihasználatlan csomópontkészlettel rendelkező AKS-fürtök létrehozásakor és kezelésekor az alábbi korlátozások érvényesek:

  • A kihasználatlan csomópontkészlet nem lehet alapértelmezett csomópontkészlet, csak másodlagos készletként használható.
  • Egyszerre nem frissítheti a vezérlősíkot és a csomópontkészleteket. Ezeket külön kell frissítenie, vagy el kell távolítania a kihasználatlan csomópontkészletet a vezérlősík és a fennmaradó csomópontkészletek egyidejű frissítéséhez.
  • A kihasználatlan csomópontkészletnek virtuálisgép-méretezési csoportokat kell használnia.
  • A létrehozás után és SpotMaxPrice a módosítás után sem módosíthatóScaleSetPriority.
  • Beállításkor SpotMaxPriceaz értéknek -1 vagy legfeljebb öt tizedesjegyet tartalmazó pozitív értéknek kell lennie.
  • A kihasználatlan csomópontkészletek kubernetes.azure.com/scalesetpriority:spot címkéje, kubernetes.azure.com/scalesetpriority=spot:NoSchedule a fertőzöttség és a rendszer podjai anti affinitással rendelkeznek.
  • A kihasználatlan csomópontkészlet számítási feladatainak ütemezéséhez hozzá kell adnia egy megfelelő toleranciát és affinitást .

Kihasználatlan csomópontkészlet hozzáadása AKS-fürthöz

Ha kihasználatlan csomópontkészletet ad hozzá egy meglévő fürthöz, annak több csomópontkészletet engedélyező fürtnek kell lennie. Ha több csomópontkészlettel rendelkező AKS-fürtöt hoz létre, alapértelmezés szerint létrehoz egy csomópontkészletet priorityRegular . Kihasználatlan csomópontkészlet hozzáadásához meg kell adnia Spot a pontcsomópont priorityértékét. További részletek a több csomópontkészletet tartalmazó AKS-fürt létrehozásáról: több csomópontkészlet használata.

  • Hozzon létre egy csomópontkészletet prioritySpot a az aks nodepool add parancs használatával.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name spotnodepool \
        --priority Spot \
        --eviction-policy Delete \
        --spot-max-price -1 \
        --enable-cluster-autoscaler \
        --min-count 1 \
        --max-count 3 \
        --no-wait
    

Az előző parancsban a prioritySpot csomópontkészlet kihasználatlan csomópontkészlet lesz. A eviction-policy paraméter értéke Deleteaz alapértelmezett érték. Amikor a kiürítési szabályzatot úgy állítja be, hogy Deletea csomópontkészlet mögöttes méretezési csoportjában lévő csomópontok törlődnek a kiürítéskor.

A kiürítési szabályzatot Deallocateis beállíthatja, ami azt jelenti, hogy a mögöttes méretezési csoportban lévő csomópontok a kiürítéskor leállított felszabadított állapotra vannak állítva. A leállított felszabadított állapotban lévő csomópontok száma a számítási kvótához viszonyított, és problémákat okozhat a fürtök skálázásával vagy frissítésével kapcsolatban. Az priority és eviction-policy az értékek csak a csomópontkészlet létrehozásakor állíthatók be. Ezek az értékek később nem frissíthetők.

Az előző parancs lehetővé teszi a fürt automatikus skálázását is, amelyet javasoljuk a kihasználatlan csomópontkészletekkel való használathoz. A fürtben futó számítási feladatok alapján a fürt automatikus skálázása felfelé és lefelé skálázza a csomópontok számát. A kihasználatlan csomópontkészletek esetében a fürt automatikus skálázója felskálázza a kilakoltatás utáni csomópontok számát, ha további csomópontokra van szükség. Ha módosítja a csomópontkészletben található csomópontok maximális számát, a fürt automatikus skálázásához társított értéket is módosítania maxCount kell. Ha nem használ automatikus fürtméretezőt, a kilakoltatáskor a kihasználatlan készlet végül 0-ra csökken, és manuális műveletet igényel a további kihasználatlan csomópontok fogadásához.

Fontos

Csak olyan kihasználatlan csomópontkészleteken ütemezzen számítási feladatokat, amelyek képesek kezelni a megszakításokat, például a kötegelt feldolgozási feladatokat és a tesztelési környezeteket. Javasoljuk, hogy a kihasználatlan csomópontkészleten állítson be fertőzöttségeket és tűréseket, hogy csak a csomópontok kizárását kezelni képes számítási feladatok legyenek ütemezve egy kihasználatlan csomópontkészleten. A fenti parancs például egy fertőzöttet kubernetes.azure.com/scalesetpriority=spot:NoSchedulead hozzá, így csak a megfelelő toleranciával rendelkező podok vannak ütemezve ezen a csomóponton.

A kihasználatlan csomópontkészlet ellenőrzése

  • Ellenőrizze, hogy a csomópontkészlet hozzáadva lett-e a az aks nodepool show paranccsal, és ellenőrizze, hogy azscaleSetPriority.Spot

    az aks nodepool show --resource-group myResourceGroup --cluster-name myAKSCluster --name spotnodepool
    

Pod ütemezése a kihasználatlan csomóponton való futtatáshoz

Ha egy podot úgy szeretne ütemezni, hogy egy kihasználatlan csomóponton fusson, hozzáadhat egy olyan tűrést és csomópont-affinitást, amely megfelel a kihasználatlan csomópontra alkalmazott szennyezettségnek.

Az alábbi példa egy YAML-fájl egy részét mutatja be, amely meghatározza a kubernetes.azure.com/scalesetpriority=spot:NoSchedule fertőzöttségnek megfelelő tűrést, valamint az előző lépésben requiredDuringSchedulingIgnoredDuringExecution használt címkének kubernetes.azure.com/scalesetpriority=spot megfelelő csomópont-affinitást és preferredDuringSchedulingIgnoredDuringExecution csomópont-affinitási szabályokat:

spec:
  containers:
  - name: spot-example
  tolerations:
  - key: "kubernetes.azure.com/scalesetpriority"
    operator: "Equal"
    value: "spot"
    effect: "NoSchedule"
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: "kubernetes.azure.com/scalesetpriority"
            operator: In
            values:
            - "spot"
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: another-node-label-key
            operator: In
            values:
            - another-node-label-value

Ha ezzel a tűréssel és csomópont-affinitással helyez üzembe egy podot, a Kubernetes sikeresen ütemezi a podot a csomópontokon a fertőzöttség és a címke alkalmazásával. Ebben a példában a következő szabályok érvényesek:

  • A csomópontnak rendelkeznie kell egy kulccsal kubernetes.azure.com/scalesetpriorityellátott címkével, és a címke értékének kell lennie spot.
  • A csomópontnak lehetőleg van egy címkéje a kulccsal another-node-label-key, és a címke értékének meg kell lennie another-node-label-value.

További információ: Podok hozzárendelése csomópontokhoz.

Kihasználatlan csomópontkészlet frissítése

A kihasználatlan csomópontkészlet frissítésekor az AKS belsőleg kordont és kiürítési értesítést ad ki, de a rendszer nem alkalmaz lefolyót. A kihasználatlan csomópontkészlet-frissítésekhez nem érhetők el túlfeszültség-csomópontok. Ezeken a módosításokon kívül a kihasználatlan csomópontkészletek frissítésének viselkedése összhangban van más csomópontkészlet-típusok viselkedésével.

A frissítéssel kapcsolatos további információkért lásd : AKS-fürt frissítése.

Kihasználatlan készlet maximális ára

A kihasználatlan példányok díjszabása régió és termékváltozat alapján változó. További információt a Linux és a Windows díjszabási információiban talál.

A változó díjszabással legfeljebb öt tizedesjegy használatával állíthatja be a maximális árat amerikai dollárban (USD) kifejezve. A 0,98765 érték például óránként 0,98765 USD. Ha a maximális árat -1 értékre állítja, a példány nem lesz kizárva az ár alapján. Mindaddig, amíg rendelkezésre áll kapacitás és kvóta, a példány ára az aktuális ár alacsonyabb ára lesz egy spot példányhoz vagy egy standard példányhoz.

Következő lépések

Ebből a cikkből megtudhatja, hogyan adhat hozzá kihasználatlan csomópontkészletet egy AKS-fürthöz. További információ a podok csomópontkészletek közötti szabályozásáról: Ajánlott eljárások az AKS speciális ütemezőfunkcióihoz.