Fürt automatikus skálázása az Azure Kubernetes Service-ben (AKS) – áttekintés
Az Azure Kubernetes Service (AKS) alkalmazásigényeinek teljesítéséhez előfordulhat, hogy módosítania kell a számítási feladatokat futtató csomópontok számát. A fürt automatikus skálázási összetevője figyeli a fürt azon podjait, amelyek erőforrás-korlátozások miatt nem ütemezhetők. Amikor a fürt automatikus skálázója nem ütemezett podokat észlel, az skálázza a csomópontkészlet csomópontjainak számát az alkalmazásigény kielégítése érdekében. Emellett rendszeresen ellenőrzi azokat a csomópontokat is, amelyek nem rendelkeznek ütemezett podokkal, és igény szerint leskálázza a csomópontok számát.
Ez a cikk segít megérteni, hogyan működik a fürt automatikus skálázása az AKS-ben. Útmutatást, ajánlott eljárásokat és szempontokat is kínál a fürt automatikus skálázójának az AKS-számítási feladatokhoz való konfigurálásakor. Ha engedélyezni, letiltani vagy frissíteni szeretné a fürt automatikus skálázóját az AKS-számítási feladatokhoz, olvassa el a fürt automatikus skálázási eszközének használata az AKS-ben című témakört.
A fürt automatikus skálázási eszközének ismertetése
A fürtöknek gyakran szükségük van arra, hogy automatikusan skálázhatók, hogy igazodjanak a változó alkalmazásigényekhez, például munkanapok és esték vagy hétvégék között. Az AKS-fürtök a következő módokon méretezhetők:
- A fürt automatikus skálázója rendszeresen ellenőrzi azokat a podokat, amelyeket erőforrás-korlátozások miatt nem lehet ütemezni a csomópontokon. A fürt ezután automatikusan növeli a csomópontok számát. Az automatikus fürtskálázási eszköz használata során a manuális skálázás le van tiltva. További információ: Hogyan működik a vertikális felskálázás?
- A vízszintes podok automatikus skálázása a Kubernetes-fürtök metrikakiszolgálóját használja a podok erőforrásigényének figyelésére. Ha egy alkalmazásnak több erőforrásra van szüksége, a podok száma automatikusan növekszik az igények kielégítése érdekében.
- A függőleges pod automatikus skálázása automatikusan beállítja az erőforrás-kérelmeket és a tárolókra vonatkozó korlátokat számítási feladatonként a korábbi használat alapján annak biztosítása érdekében, hogy a podok a szükséges processzor- és memóriaerőforrásokkal rendelkező csomópontokra legyenek ütemezve.
Gyakori eljárás a fürt automatikus skálázásának engedélyezése a csomópontokhoz, illetve a podok függőleges pod-automatikus skálázási vagy vízszintes pod-automatikus skálázási funkciójának engedélyezéséhez. Ha engedélyezi a fürt automatikus skálázását, a megadott skálázási szabályokat alkalmazza, ha a csomópontkészlet mérete alacsonyabb a minimális csomópontszámnál, egészen a csomópontok maximális számához. A fürt automatikus skálázása megvárja, amíg új csomópontra van szükség a csomópontkészletben, vagy amíg egy csomópont biztonságosan nem törlődik az aktuális csomópontkészletből. További információ: Hogyan működik a leskálázás?
Ajánlott eljárások és szempontok
- Ha a rendelkezésre állási zónákat a fürt automatikus skálázójával implementálja, javasoljuk, hogy minden zónához használjon egyetlen csomópontkészletet. A paramétert beállíthatja
--balance-similar-node-groups
úgy, hogyTrue
a csomópontok kiegyensúlyozott eloszlását fenntartsa zónák között a számítási feladatokhoz a vertikális felskálázási műveletek során. Ha ez a megközelítés nincs implementálva, a vertikális leskálázási műveletek megzavarhatják a csomópontok zónák közötti egyensúlyát. - A 400-nál több csomóponttal rendelkező fürtök esetében az Azure CNI vagy az Azure CNI Overlay használatát javasoljuk.
- Ha egyszerre szeretne számítási feladatokat futtatni a Kihasználatlan és a Rögzített csomópontkészleteken, fontolja meg a prioritásbővítők használatát. Ez a módszer lehetővé teszi a podok ütemezését a csomópontkészlet prioritása alapján.
- Körültekintően rendeljen hozzá processzor-/memóriakérelmeket a podokhoz. A fürt automatikus skálázása a függőben lévő podok alapján vertikálisan felskálázható, nem pedig a csomópontokra nehezedő processzor-/memóriaterhelés alapján.
- Az olyan fürtök esetében, amelyek egyidejűleg üzemeltetik a hosszú ideig futó számítási feladatokat, például a webalkalmazásokat és a rövid/kiugró számítási feladatokat, javasoljuk, hogy külön csomópontkészletekbe különítsék el őket affinitási szabályok/kibontásával, vagy a PodDisruptionBudget használatával, hogy megelőzzék a csomópontok felesleges kiürítését vagy a leskálázási műveleteket. Ha megadja a megjegyzést cluster-autoscaler.kubernetes.io/safe-to-evict: "false" (hamis) a pod specifikációja, akkor a podok kizárása is megakadályozható. Körültekintően használja ezt a megjegyzést, mert az azt okozhatja, hogy a fürt automatikus skálázása problémákat okozhat, amikor egy futó podot tartalmazó csomópontot ürít ki, amely tartalmazza ezt a széljegyzetet.
- Az automatikus skálázást lehetővé tevő csomópontkészletekben a csomópontok méretezése a számítási feladatok eltávolításával, a csomópontok számának manuális csökkentése helyett. Ez akkor lehet problémás, ha a csomópontkészlet már maximális kapacitással rendelkezik, vagy ha a csomópontokon aktív számítási feladatok futnak, ami váratlan viselkedést okozhat a fürt automatikus skálázója számára.
- A csomópontok nem skálázhatók fel, ha a podok PriorityClass értéke -10 alatt van. A -10 prioritás a podok túlbontására van fenntartva. További információ: A fürt automatikus skálázásának használata podprioritással és előtaggal.
- Ne egyesítse a többi csomópont automatikus méretezési mechanizmusát, például a virtuálisgép-méretezési csoport automatikus skálázási mechanizmusait a fürt automatikus skálázójával.
- Előfordulhat, hogy a fürt automatikus skálázója nem tud leskálázni, ha a podok nem tudnak mozogni, például a következő helyzetekben:
- Olyan közvetlenül létrehozott pod, amelyet nem egy vezérlőobjektum, például egy üzembe helyezés vagy replikakészlet támogatott.
- Olyan podkimaradási költségvetés (PDB), amely túl korlátozó, és nem teszi lehetővé, hogy a podok száma egy bizonyos küszöbérték alá csökkenjen.
- A podok csomópontválasztókat vagy affinitást használnak, amelyeket nem lehet tiszteletben tartani, ha egy másik csomópontra ütemezik. További információ: Milyen típusú podok akadályozhatják meg, hogy a fürt automatikus skálázója eltávolítson egy csomópontot?
Fontos
Ne módosítsa az automatikusan skálázott csomópontkészletek egyes csomópontjait. Az ugyanabban a csomópontcsoportban lévő összes csomópontnak egységes kapacitással, címkékvel, fertőzöttségekkel és rajtuk futó rendszer podokkal kell rendelkeznie.
- A fürt automatikus skálázója nem felelős a fürtcsomópont-készlet "maximális csomópontszámának" kikényszerítéséért, függetlenül a podütemezési szempontoktól. Ha egy nem fürtalapú automatikus skálázási szereplő a csomópontkészletek számát a fürt automatikus skálázási beállításának maximális értékén túlra állítja, a fürt automatikus skálázója nem távolítja el automatikusan a csomópontokat. A fürt automatikus skálázási viselkedése továbbra is hatókörrel rendelkezik, így csak az ütemezett podokkal nem rendelkező csomópontokat távolítja el. A fürt automatikus skálázójának maximális csomópontszám-konfigurációjának egyetlen célja a vertikális felskálázási műveletek felső korlátjának kikényszerítése. Nincs hatással a vertikális leskálázási szempontokra.
Fürt automatikus skálázási profilja
A fürt automatikus skálázási profilja olyan paraméterek készlete, amelyek a fürt automatikus skálázási funkciójának működését vezérli. Fürt létrehozásakor vagy meglévő fürt frissítésekor konfigurálhatja a fürt automatikus skálázási profilját.
A fürt automatikus skálázási profiljának optimalizálása
Finomhangolnia kell a fürt automatikus skálázási profilbeállításait az adott számítási feladatok forgatókönyvei szerint, és figyelembe kell vennie a teljesítmény és a költség közötti kompromisszumot is. Ez a szakasz példákat mutat be ezekre a kompromisszumokre.
Fontos megjegyezni, hogy a fürt automatikus skálázási profilbeállításai fürtszintűek, és az összes automatikus skálázást engedélyező csomópontkészletre vonatkoznak. Az egyik csomópontkészletben végrehajtott skálázási műveletek hatással lehetnek a többi csomópontkészlet automatikus skálázási viselkedésére, ami váratlan eredményekhez vezethet. Győződjön meg arról, hogy konzisztens és szinkronizált profilkonfigurációkat alkalmaz az összes releváns csomópontkészletre, hogy biztosan megkapja a kívánt eredményeket.
1. példa: A teljesítmény optimalizálása
Olyan fürtök esetében, amelyek jelentős és kipukkanó számítási feladatokat kezelnek, és elsődlegesen a teljesítményre összpontosítanak, javasoljuk a scan-interval
teljesítmény növelését és csökkentését scale-down-utilization-threshold
. Ezek a beállítások segítenek több skálázási művelet egyetlen hívásba való kötéséhez, optimalizálva a skálázási időt és a számítási olvasási/írási kvóták kihasználtságát. Emellett segít csökkenteni a kihasználatlan csomópontokon végzett gyors vertikális leskálázási műveletek kockázatát, ami növeli a podütemezési hatékonyságot. A növekedés ok-total-unready-count
és a max-total-unready-percentage
.
A démonkészlet-podokkal rendelkező fürtök esetében azt javasoljuk, hogy állítsa true
be ignore-daemonsets-utilization
a beállítást, amely hatékonyan figyelmen kívül hagyja a csomópontok kihasználtságát a démonkészlet-podok szerint, és minimalizálja a szükségtelen vertikális leskálázási műveleteket. A kipukkanó számítási feladatok profiljának megtekintése
2. példa: A költségek optimalizálása
Ha költségoptimalizált profilt szeretne, javasoljuk, hogy a következő paraméterkonfigurációkat állítsa be:
- Csökkentés
scale-down-unneeded-time
– ez az az idő, amíg a csomópontot szükségtelenné kell tenni, mielőtt jogosult lenne a vertikális leskálázásra. - Csökkentse
scale-down-delay-after-add
a skálázást, ami azt az időtartamot határozza meg, amíg a csomópont hozzáadódik, mielőtt megfontolja a leskálázást. - Növelje
scale-down-utilization-threshold
a csomópontok eltávolításának kihasználtsági küszöbértékét. - Ez
max-empty-bulk-delete
az egyetlen hívásban törölhető csomópontok maximális száma. - Állítsa hamisra
skip-nodes-with-local-storage
. - Növekedés
ok-total-unready-count
ésmax-total-unready-percentage
.
Gyakori problémák és megoldási javaslatok
A skálázási hibák megtekintése és a nem aktivált események felskálázása a parancssori felületen vagy a portálon keresztül.
A vertikális felskálázási műveletek nem aktiválhatók
Gyakori okok | Megoldási javaslatok |
---|---|
A PersistentVolume csomópont affinitási ütközései akkor fordulhatnak elő, ha a fürt automatikus skálázását több rendelkezésre állási zónával használja, vagy ha egy pod vagy állandó kötet zónája eltér a csomópont zónájától. | Rendelkezésre állási zónánként egy csomópontkészlet használata és engedélyezés --balance-similar-node-groups . Beállíthatja a mezőt WaitForFirstConsumer a volumeBindingMode pod specifikációjában is, hogy megakadályozza, hogy a kötet csomóponthoz legyen kötve, amíg létre nem jön a kötetet használó pod. |
Taints and Tolerations/Node affinitás ütközések | Mérje fel a csomópontokhoz rendelt szennyezettségeket, és tekintse át a podokban definiált tűréseket. Szükség esetén módosítsa a fertőzöttségeket és a tűréseket , hogy a podok hatékonyan ütemezhetők legyenek a csomópontokon. |
Művelethibák vertikális felskálázása
Gyakori okok | Megoldási javaslatok |
---|---|
Az IP-cím kimerülése az alhálózatban | Adjon hozzá egy másik alhálózatot ugyanabban a virtuális hálózatban, és vegyen fel egy másik csomópontkészletet az új alhálózatba. |
Magkvóta kimerülése | A jóváhagyott magkvóta kimerült. Kvótanövelés kérése. A fürt automatikus skálázója exponenciális visszalépési állapotba kerül az adott csomópontcsoporton belül, amikor több sikertelen vertikális felskálázási kísérletet tapasztal. |
Csomópontkészlet maximális mérete | Növelje a csomópontkészlet maximális csomópontjait, vagy hozzon létre egy új csomópontkészletet. |
A sebességkorlátot meghaladó kérések/hívások | Lásd: 429 Túl sok kérés hiba. |
Leskálázási művelet hibái
Gyakori okok | Megoldási javaslatok |
---|---|
Pod megakadályozza a csomópontok kiürítését/Nem lehet kiüríteni a podot | • Megtekintheti , hogy milyen típusú podok akadályozhatják meg a leskálázást. • Helyi tárolót használó podok esetén, például hostPath és emptyDir, állítsa be a fürt automatikus skálázási profiljának false jelzőtskip-nodes-with-local-storage . • A pod specifikációjában állítsa a széljegyzetet a cluster-autoscaler.kubernetes.io/safe-to-evict következőre true : . • Ellenőrizze a PDB-t, mert lehet, hogy korlátozó. |
Csomópontkészlet minimális mérete | Csökkentse a csomópontkészlet minimális méretét. |
A sebességkorlátot meghaladó kérések/hívások | Lásd: 429 Túl sok kérés hiba. |
Írási műveletek zárolva | Ne módosítsa a teljes mértékben felügyelt AKS-erőforráscsoportot (lásd az AKS támogatási szabályzatait). Távolítsa el vagy állítsa alaphelyzetbe az erőforráscsoportra korábban alkalmazott erőforrás-zárolásokat . |
Egyéb problémák
Gyakori okok | Megoldási javaslatok |
---|---|
PriorityConfigMapNotMatchedGroup | Győződjön meg arról, hogy az összes automatikus skálázást igénylő csomópontcsoportot hozzáadja a kibontó konfigurációs fájlhoz. |
Csomópontkészlet a backoffban
A csomópontkészlet a 0.6.2-es verzióban lett bevezetve, és a fürt automatikus skálázási funkciójának meghibásodása után visszalép a csomópontkészlet skálázásától.
Attól függően, hogy a skálázási műveletek mennyi ideig tapasztalnak hibákat, akár 30 percet is igénybe vehet, mielőtt újabb kísérletet tennének. A csomópontkészlet visszalépési állapotát alaphelyzetbe állíthatja, ha letiltja, majd újra engedélyezi az automatikus skálázást.
Azure Kubernetes Service