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 problémákat észlel, felská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 a csomópontokat, hogy nincs-e futó pod, és szükség szerint skálázza le 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. A manuális skálázás le van tiltva a fürt automatikus skálázási eszközének használatakor. 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.

Képernyőkép arról, hogy a fürt automatikus skálázója és a podok automatikus horizontális skálázása gyakran együttműködik a szükséges alkalmazásigények támogatásához.

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. A fürt automatikus skálázásának engedélyezésekor a megadott skálázási szabályokat alkalmazza, ha a csomópontkészlet mérete kisebb a minimumnál vagy nagyobb a maximálisnál. 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, hogy True 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.
  • 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ó feladatok számítási feladatait, javasoljuk, hogy külön csomópontkészletekbe különítsék el őket affinitási szabályok/kibontásávalvagy a PriorityClass használatával, hogy megelőzzék a csomópontok felesleges kiürítését vagy a leskálázási műveleteket.
  • 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

Az automatikusan skálázott csomópontkészleteken belül ne módosítsa az egyes csomópontokat. 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.

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 truebe ignore-daemonset-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-adda 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-thresholda csomópontok eltávolításának kihasználtsági küszöbértékét.
  • Ez max-empty-bulk-deleteaz 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és max-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 falsejelző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.