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
SpotMaxPrice
az é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 priority
Regular
. 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
priority
Spot
aaz 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 priority
Spot
csomópontkészlet kihasználatlan csomópontkészlet lesz. A eviction-policy
paraméter értéke Delete
az alapértelmezett érték. Amikor a kiürítési szabályzatot úgy állítja be, hogy Delete
a 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 Deallocate
is 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:NoSchedule
ad 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/scalesetpriority
ellátott címkével, és a címke értékének kell lenniespot
. - 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 lennieanother-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.
Azure Kubernetes Service