Kubernetes

Kubernetes Horizontal Pod Autoscaler

Kubernetes Horizontal Pod Autoscaler
Pods lze vytvořit jako samostatné objekty, nebo jako součást škálovatelné sady replik nebo nasazení. Každý z posledních dvou objektů se používá k nasazení nejen jednoho podu, ale mnoha z nich. Cílem zde je, že lusky mohou být zaměnitelné, pokud má člověk příliš velký provoz, mohou se objevit další dva a nést další zátěž. Zde je však důležité si uvědomit, že objekty repliky i nasazení mají pevně zakódovaný počet replik podů, které mají v úmyslu spustit.

Pokud je počet replik nastaven na 100 a poptávka je příliš nízká, bude i potom 100 podů funkční. To má za následek plýtvání CPU a paměťovými prostředky. Ano, nabízí spolehlivost v tom smyslu, že pokud dojde k selhání uzlu a pody v něm zemřou, pokusí se řadič sady replik vrátit počet lusků zpět na 100 vytvořením lusků v jiných uzlech. Aplikace zůstává online.

V abstraktnějším smyslu by se sada replik pokusila dosáhnout a požadovaný stav shluku a podíval by se na aktuální stav a zjistit, jak může dosáhnout požadovaného stavu.

Chtěli bychom však něco trochu citlivějšího na skutečnou poptávku. Enter Horizontální podavač aut. Úkolem společnosti Horizontal Pod Autoscaler je škálovat aplikaci, když je potřeba, a poté ji zmenšit zpět, jakmile pracovní zátěž klesne.

Proč používat automatický škálovač Horizontal Pod?

Jak název napovídá, tato součást by vaši aplikaci automaticky škálovala. V cloudu vám to opravdu pomůže snížit výpočetní a paměťové zdroje, které vám budou účtovány. Vzhledem k tomu, že Autoscaler je citlivý na využití prostředků, když zjistí, že spousta lusků právě nečinně sedí, zmenší velikost aplikace a když se zvýší poptávka po těchto luscích, změní velikost aplikace tím, že vytvoří nové lusky a zátěž se distribuuje do ty.

To vám může ušetřit jak drahocenný čas, tak výpočetní zdroje. Při psaní nasazení se nebudete muset starat o to, jaký by měl být počet replik pro vaše lusky, to by za vás spravoval autoscaler.

Počáteční nastavení

Nejdůležitějším požadavkem by bylo, abyste měli spuštěný cluster Kubernetes. Použijte hřiště Katacoda, které je ideální pro experimentování a poznávání Kubernetes. Další věc, kterou byste potřebovali, je metrický server.

Tento doplněk k vašemu systému Kubernetes (jmenný prostor kube-system) by shromažďoval metriky, jako je využití procesoru a paměti, ze dvou různých perspektiv:

  1. Zdroj používaný každým podem
  2. Zdroj spotřebovaný v každém uzlu

Metriky z obou hledisek jsou zásadní, protože pomáhají Autoscaleru rozhodnout, jaký by měl být jeho další krok. Chcete-li přidat metrický server do svého klastru Kubernetes, postupujte podle této příručky. Nyní jsme připraveni vidět Horizontal Pod Autoscaler v akci.

Používání automatického škálovače

Abychom viděli, jak Autoscaler funguje, potřebujeme testovací aplikaci. Vytvořme jednoduchý server php-apache a vystavme jej jako službu.

$ kubectl spustit php-apache --image = k8s.gcr.Příklad io / hpa --requests = cpu = 200m --expose
--port = 80

Obrázek použitý zde je jedním z ukázkových obrázků poskytnutých projektem Kubernetes. Provádí některé úlohy náročné na CPU a díky tomu je proces mnohem více patrný.

K automatickému škálování tohoto nasazení musíme autoscaler informovat, jaký je minimální a maximální počet lusků, které povolíme, a procento CPU, které mohou používat. Existuje mnoho dalších faktorů, které můžete zvážit, například paměť, úložiště a síť.

$ kubectl nasazení autoscale / php-apache --cpu-percent = 50 --min = 1 --max = 10

V současném stavu, protože tuto službu nikdo nespotřebovává, bude nejraději zůstat na minimální hodnotě. Stav všech autoscaled rozmístění ve výchozím jmenném prostoru můžete zkontrolovat spuštěním:

$ kubectl dostat hpa
JMÉNO REFERENČNÍ CÍLE MINIPODY MAXPODY VĚK REPLIKY
php-apache Deployment / php-apache 0% / 50% 1 10 1 2 m

Generování zatížení a testování funkce automatického škálování

Můžete vidět, že počet replik je stále pouze jedna a zatížení CPU je nevýznamně nízké. Můžeme vytvořit další zatížení a zjistit, jak na něj automatický škálovač reaguje. Služba, která vystavuje naše php-apache lusky, není vystavena vnějšímu světu, takže vytvoříme dočasný pod a v tomto modulu otevřeme interaktivní relaci shellu.

To nám umožní komunikovat se všemi službami dostupnými v klastru, včetně služby php-apache.

$ kubectl run -i --tty busybox --image = busybox --restart = nikdy - sh
/ #

Zjistíte, že se výzva změní, což naznačuje, že jsme uvnitř tohoto kontejneru. Zkusme nyní trochu zatěžovat naši službu opakovaným zadáváním požadavků. V nové výzvě spustíme následující smyčku while:

/ # zatímco true; do wget -q -O- http: // php-apache.výchozí.svc.shluk.místní; Hotovo

Otevřete nový terminál, protože ještě nemůžeme nechat tuto smyčku ukončit. Po kontrole automatického škálovače uvidíte využití procesoru a při výpisu podů uvidíte, že nyní existuje několik instancí serveru php-apache,

$ kubectl dostat hpa
JMÉNO REFERENČNÍ CÍLE MINIPODY MAXPODY VĚK REPLIKY
php-apache nasazení / php-apache 121% / 50% 1 10 4 1 h
 
$ kubectl získat lusky
STAV JMÉNA PŘIPRAVENO VĚC RESTARTŮ
busybox 1/1 Běh 0 6m
php-apache-8699449574-7qwxd 1/1 běží 0 28 s
php-apache-8699449574-c9v54 1/1 běží 0 10 hodin
php-apache-8699449574-h9s5f 1/1 běží 0 28 s
php-apache-8699449574-sg4hz 1/1 běží 0 28 s

Ukončete smyčku while a počet lusků za několik minut zemře na jeden.

Závěr

Jedná se tedy o jednoduchou ukázku automatického škálovače Horizontal Pod. Nezapomeňte mít pro svůj cluster funkční server metrik a při vytváření nasazení udržujte počet replik na 1. O zbytek se postará horizontální autoscaler.

Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...
Hry Nejlepší hry Oculus App Lab
Nejlepší hry Oculus App Lab
Pokud jste vlastníkem náhlavní soupravy Oculus, musíte mít informace o bočním nakládání. Sideloading je proces instalace neukládaného obsahu do náhlav...