Alkalmazásskálázási beállítások az Azure Kubernetes Service-ben (AKS)

Ha alkalmazásokat futtat az Azure Kubernetes Service-ben (AKS), előfordulhat, hogy növelnie vagy csökkentenie kell a számítási erőforrások mennyiségét. A meglévő alkalmazáspéldányok számának módosításakor előfordulhat, hogy módosítania kell a mögöttes Kubernetes-csomópontok számát. Előfordulhat, hogy számos más alkalmazáspéldányt is ki kell építenie.

Ez a cikk bemutatja az AKS-alkalmazások skálázási alapfogalmait, beleértve a podok vagy csomópontok manuális skálázását, a horizontális podok automatikus skálázását, a fürt automatikus skálázását és az Azure Container Instances (ACI) integrálását.

Podok vagy csomópontok manuális méretezése

Manuálisan skálázhatja a replikákat, podokat és csomópontokat, hogy tesztelje, hogyan reagál az alkalmazás az elérhető erőforrások és állapotok változására. Az erőforrások manuális méretezése lehetővé teszi, hogy meghatározott mennyiségű erőforrást használjon a rögzített költségek fenntartásához, például a csomópontok számának fenntartásához. A manuális méretezéshez meg kell határoznia a replika vagy a csomópontok számát. A Kubernetes API ezután további podok létrehozását vagy csomópontok kiürítését ütemezi az adott replika vagy csomópontszám alapján.

Csomópontok leskálázásakor a Kubernetes API meghívja a fürt által használt számítási típushoz kapcsolódó azure compute API-t. A virtuálisgép-méretezési csoportokra épülő fürtök esetében például a Virtual Machine Scale Sets API határozza meg, hogy mely csomópontokat kell eltávolítani. Ha többet szeretne megtudni arról, hogy a csomópontok hogyan lesznek kiválasztva a vertikális leskálázáshoz való eltávolításhoz, tekintse meg a virtuálisgép-méretezési csoportokra vonatkozó gyakori kérdéseket.

A csomópontok manuális méretezésének megkezdéséhez tekintse meg az AKS-fürtök csomópontjainak manuális méretezését. A podok számának manuális skálázásához tekintse meg a kubectl scale parancsot.

A podok automatikus horizontális skálázási eszköze

A Kubernetes a podok automatikus horizontális skálázásával (HPA) figyeli az erőforrás-igényt, és automatikusan skálázza a podok számát. Alapértelmezés szerint a HPA 15 másodpercenként ellenőrzi a Metrics API-t a replikák számának szükséges változásaiért, a Metrics API pedig 60 másodpercenként kéri le az adatokat a Kubeletből. A HPA tehát 60 másodpercenként frissül. Ha módosításra van szükség, a replikák száma ennek megfelelően növekszik vagy csökken. A HPA olyan AKS-fürtökkel működik, amelyek üzembe helyezték a Kubernetes 1.8-es vagy újabb verzióját.

A Kubernetes vízszintes pod automatikus skálázása

Amikor konfigurálja a HPA-t egy adott üzembe helyezéshez, meg kell határoznia a futtatható replikák minimális és maximális számát. Megadhatja azt a metrikát is, amely figyeli és alapozza a skálázási döntéseket, például a PROCESSZORhasználatot.

Az AKS-ben a podok automatikus horizontális skálázásával kapcsolatos első lépésekért tekintse meg az AKS automatikus skálázási podjait.

A skálázási események hűtése

Mivel a HPA gyakorlatilag 60 másodpercenként frissül, előfordulhat, hogy a korábbi skálázási események nem fejeződtek be sikeresen, mielőtt újabb ellenőrzést végeznek. Ez a viselkedés azt eredményezheti, hogy a HPA módosítja a replikák számát, mielőtt az előző skálázási esemény alkalmazásterhelést kapna, és az erőforrásigény ennek megfelelően módosulna.

A versenyesemények minimalizálása érdekében egy késleltetési érték van beállítva. Ez az érték határozza meg, hogy a HPA mennyi ideig várjon egy skálázási esemény után, mielőtt egy másik skálázási esemény aktiválható lenne. Ez a viselkedés lehetővé teszi az új replikák számának érvénybe lépését, a Metrics API pedig az elosztott számítási feladatnak megfelelően. A Kubernetes 1.12-hez hasonló vertikális felskálázási események esetében nincs késés, a leskálázási események alapértelmezett késleltetése azonban 5 perc.

Fürtök automatikus méretezése

A podok változó igényeire való reagáláshoz a Kubernetes-fürt automatikus skálázója a csomópontkészlet kért számítási erőforrásai alapján módosítja a csomópontok számát. Alapértelmezés szerint a fürt automatikus skálázója 10 másodpercenként ellenőrzi a Metrics API-kiszolgálót a csomópontok számának szükséges változásaiért. Ha a fürt automatikus skálázója megállapítja, hogy változásra van szükség, az AKS-fürt csomópontjainak száma ennek megfelelően növekszik vagy csökken. A fürt automatikus skálázása kubernetes RBAC-kompatibilis AKS-fürtökkel működik, amelyek Kubernetes 1.10.x vagy újabb verziót futtatnak.

Kubernetes-fürt automatikus skálázása

A fürt automatikus skálázását általában a vízszintes pod automatikus skálázási eszközével együtt használják. Kombinálva a podok automatikus horizontális skálázása az alkalmazásigények alapján növeli vagy csökkenti a podok számát, és a fürt automatikus skálázása a csomópontok számát úgy módosítja, hogy több podot futtasson.

Az AKS-ben a fürt automatikus skálázási funkciójának használatbavételéhez tekintse meg az AKS-beli fürt automatikus skálázását ismertető témakört.

Események vertikális felskálázása

Ha egy csomópont nem rendelkezik elegendő számítási erőforrással a kért pod futtatásához, a pod nem tud haladni az ütemezési folyamaton. A pod csak akkor indítható el, ha több számítási erőforrás áll rendelkezésre a csomópontkészleten belül.

Amikor a fürt automatikus skálázója észleli azokat a podokat, amelyeket a csomópontkészlet erőforrás-korlátozásai miatt nem lehet ütemezni, a csomópontkészleten belüli csomópontok száma megnő, hogy további számítási erőforrásokat biztosítson. Ha a csomópontok sikeresen üzembe lettek helyezve, és a csomópontkészleten belül használhatók, a podokat a rendszer ütemezi, hogy rajtuk fussanak.

Ha az alkalmazásnak gyorsan skáláznia kell, előfordulhat, hogy egyes podok ütemezésre váró állapotban maradnak, amíg a fürt automatikus skálázója által üzembe helyezett csomópontok közül több nem fogadja el az ütemezett podokat. A magas kipukkadási igényű alkalmazások esetében skálázhat virtuális csomópontokkal és Azure Container Instances-ekkel.

Skálázás eseményekben

A fürt automatikus skálázási szolgáltatása figyeli azoknak a csomópontoknak a podütemezési állapotát is, amelyek nemrég nem kaptak új ütemezési kéréseket. Ez a forgatókönyv azt jelzi, hogy a csomópontkészlet a szükségesnél több számítási erőforrással rendelkezik, és a csomópontok száma csökkenthető. Alapértelmezés szerint azok a csomópontok, amelyek 10 percig már nem igényelnek küszöbértéket, törlésre lesznek ütemezve. Ebben az esetben a podok a csomópontkészleten belüli más csomópontokon lesznek ütemezve, és a fürt automatikus skálázása csökkenti a csomópontok számát.

Az alkalmazások némi fennakadást tapasztalhatnak, mivel a podok ütemezése különböző csomópontokon történik, amikor a fürt automatikus skálázása csökkenti a csomópontok számát. A megszakítások minimalizálása érdekében kerülje az egyetlen podpéldányt használó alkalmazásokat.

Kubernetes eseményvezérelt automatikus skálázás (KEDA)

A Kubernetes eseményvezérelt automatikus skálázás (KEDA) egy nyílt forráskód összetevő a számítási feladatok eseményvezérelt automatikus skálázására. Dinamikusan skálázza a számítási feladatokat a fogadott események száma alapján. A KEDA kiterjeszti a Kubernetes-t egy egyéni erőforrásdefinícióval (CRD), amelyet ScaledObject-nek neveznek, hogy leírja, hogyan kell skálázni az alkalmazásokat adott forgalomra válaszul.

A KEDA-skálázás olyan esetekben hasznos, amikor a számítási feladatok nagy mennyiségű forgalmat fogadnak, vagy nagy mennyiségű adatot kezelnek. Ez eltér a vízszintes pod automatikus skálázásától, mivel a KEDA eseményvezérelt, és az események száma alapján skálázható, míg a HPA metrikaalapú az erőforrás-kihasználtság alapján (például CPU és memória).

A KEDA bővítmény AKS-ben való használatának megkezdéséhez tekintse meg a KEDA áttekintését.

Burst to Azure Container Instances (ACI)

Az AKS-fürt gyors méretezéséhez integrálható az Azure Container Instances (ACI) szolgáltatással. A Kubernetes beépített összetevőkkel rendelkezik a replika és a csomópontok számának skálázásához. Ha azonban az alkalmazásnak gyorsan skáláznia kell, a vízszintes pod automatikus skálázása több podot ütemezhet, mint amennyit a csomópontkészlet meglévő számítási erőforrásai biztosítanak. Ha konfigurálva van, ez a forgatókönyv aktiválja a fürt automatikus skálázását , hogy több csomópontot helyezzen üzembe a csomópontkészletben, de eltarthat néhány percig, amíg ezek a csomópontok sikeresen kiépülnek, és lehetővé teszi a Kubernetes ütemezőjének, hogy podokat futtasson rajtuk.

A Kubernetes kipukkanása az ACI-hez

Az ACI lehetővé teszi a tárolópéldányok gyors üzembe helyezését további infrastruktúraterhelés nélkül. Amikor az AKS-hez csatlakozik, az ACI az AKS-fürt biztonságos, logikai kiterjesztése lesz. A virtuális Kubeleten alapuló virtuális csomópontok összetevő telepítve van az AKS-fürtben, amely az ACI-t virtuális Kubernetes-csomópontként jeleníti meg. A Kubernetes ezután a virtuális csomópontokon keresztül ACI-példányként futó podokat ütemezheti, nem pedig közvetlenül az AKS-fürtben lévő virtuálisgép-csomópontok podjaiként.

Az alkalmazás nem igényel módosításokat a virtuális csomópontok használatához. Az üzemelő példányok az AKS-ben és az ACI-ben skálázhatók, és késedelem nélkül, mivel a fürt automatikus skálázója új csomópontokat helyez üzembe az AKS-fürtben.

A virtuális csomópontok az AKS-fürtvel azonos virtuális hálózat egy másik alhálózatán vannak üzembe helyezve. Ez a virtuális hálózati konfiguráció biztosítja az ACI és az AKS közötti forgalmat. Az AKS-fürtökhöz hasonlóan az ACI-példányok is biztonságos, logikai számítási erőforrásként vannak elkülönítve más felhasználóktól.

Következő lépések

Az alkalmazások méretezésének megkezdéséhez tekintse meg a következő erőforrásokat:

Az alapvető Kubernetes- és AKS-fogalmakkal kapcsolatos további információkért tekintse meg az alábbi cikkeket: