Správa nákladů pro Kubernetes

Azure Cost Management
Azure Kubernetes Service (AKS)
Azure Managed Disks
Azure Storage
Azure Virtual Machines

Tento průvodce vysvětluje, jak funguje správa cen a nákladů v Azure Kubernetes Service (AKS) ve srovnání se službou Amazon Elastic Kubernetes Service (Amazon EKS). Tento článek popisuje, jak optimalizovat náklady a implementovat řešení zásad správného řízení nákladů pro cluster AKS.

Poznámka

Tento článek je součástí řady článků , které pomáhají odborníkům, kteří znají Amazon EKS , porozumět AKS.

Základy nákladů na Amazon EKS

V Amazon EKS platíte za každý cluster Amazon EKS pevnou cenu za hodinu. Platíte také za sítě, provozní nástroje a úložiště, které cluster používá.

Pracovní uzly Amazon EKS jsou standardní instance Amazon EC2, takže za nich platí pravidelné ceny Amazon EC2. Platíte také za další prostředky Amazon Web Services (AWS), které zřídíte ke spouštění pracovních uzlů Kubernetes.

Za použití skupin spravovaných uzlů Amazon EKS se neúčtují žádné další poplatky. Platíte jenom za prostředky AWS, které zřídíte, včetně instancí Amazon EC2, svazků Amazon EBS, hodin clusteru Amazon EKS a jakékoli další infrastruktury AWS.

Při vytváření skupiny spravovaných uzlů můžete ke správě nákladů na uzly agentů použít kapacitu Na vyžádání nebo Spot Instances . Amazon EKS nasadí skupinu spravovaných uzlů se skupinou automatického škálování Amazon EC2 , která obsahuje všechny instance na vyžádání nebo všechny spotové instance.

U instancí na vyžádání platíte za výpočetní kapacitu po sekundách bez dlouhodobých závazků. Amazon EC2 Spot Instances jsou náhradní kapacitou Amazon EC2, která nabízí slevy v porovnání s cenami na vyžádání.

  • Amazon EC2 Spot Instances je možné přerušit s dvouminutovým upozorněním, když EC2 potřebuje kapacitu zpět.

  • Amazon poskytuje spotovou flotilu, metodu pro automatizaci skupin instancí na vyžádání a spotových instancí a službu Spot Instance Advisor, která pomáhá předpovědět, která oblast nebo zóna dostupnosti může způsobit minimální přerušení provozu.

  • Ceny spotových instancí AWS se liší. AWS nastaví cenu v závislosti na dlouhodobých trendech nabídky a poptávky pro kapacitu spotové instance a vy platíte cenu za období, po které instance běží.

Základy nákladů na AKS

Architektura Kubernetes je založena na dvou vrstvách, řídicí rovině a jednom nebo více uzlech nebo fondech uzlů. Cenový model AKS je založený na dvou vrstvách architektury Kubernetes.

  • Řídicí rovina poskytuje základní služby Kubernetes, jako je server rozhraní API a etcd, a orchestraci úloh aplikací. Platforma Azure spravuje řídicí rovinu AKS a pro úroveň Free AKS nemá řídicí rovina žádné náklady.

  • Uzly, označované také jako uzly agentů nebo pracovní uzly, hostují úlohy a aplikace Kubernetes. V AKS zákazníci plně spravují a platí všechny náklady na uzly agentů.

Následující diagram znázorňuje vztah mezi řídicí rovinou a uzly v architektuře AKS Kubernetes.

Diagram znázorňující řídicí rovinu a uzly v architektuře AKS

Řídicí rovina

Azure automaticky zřídí a nakonfiguruje vrstvu řídicí roviny při vytváření clusteru AKS. Pro úroveň AKS Free je řídicí rovina volná.

Pro smlouvu o úrovni služeb (SLA) vyšší řídicí roviny můžete vytvořit cluster AKS na úrovni Standard. Smlouva SLA je ve výchozím nastavení součástí úrovně Standard a je povolená pro jednotlivé clustery. Ceny jsou 0,10 USD za cluster a hodinu. Další informace najdete v podrobnostech o cenách AKS.

Clustery na úrovni Standard mají více prostředků roviny řízení, jako je počet instancí serveru API, omezení prostředků Etcd, škálovatelnost až do 5 000 uzlů a stávající podpora smlouvy SLA s finanční podporou. AKS používá repliky hlavních uzlů napříč aktualizačními doménami a doménami selhání ke splnění požadavků na dostupnost.

K zajištění vyšší dostupnosti součástí roviny řízení je nejlepší použít v produkčních úlohách úroveň Standard. Clustery úrovně Free mají méně replik a omezené prostředky řídicí roviny a nedoporučují se pro produkční úlohy.

Uzly

V AKS vytvoříte agenta nebo pracovní uzly v jednom nebo několika fondech uzlů, které můžou využívat mnoho základních funkcí Azure v prostředí Kubernetes. AKS se účtuje jenom za uzly připojené ke clusteru AKS.

Uzly AKS používají několik prostředků infrastruktury Azure, včetně škálovacích sad virtuálních počítačů, virtuálních sítí a spravovaných disků. Můžete například použít většinu typů virtuálních počítačů Azure přímo v AKS. Pokud chcete získat významné slevy na tyto prostředky, můžete pro výpočetní prostředky využít rezervace Azure a úsporný plán Azure .

Ceny clusteru AKS jsou založené na třídě, počtu a velikosti virtuálních počítačů ve fondech uzlů. Náklady na virtuální počítače závisí na velikosti, typu procesoru, počtu virtuálních procesorů, dostupné paměti, rodině a typu úložiště, například vysokovýkonných disků SSD nebo HDD úrovně Standard. Další informace najdete v tématu Řada virtuálních počítačů. Velikost uzlu můžete plánovat podle požadavků aplikace, počtu uzlů a požadavků na škálovatelnost clusteru.

Další informace o uzlech agentů a fondech uzlů najdete v článku Fondy uzlů v této sérii a Vytvoření a správa více fondů uzlů pro cluster v Azure Kubernetes Service (AKS).

Nasazení clusteru AKS

Každé nasazení AKS zahrnuje dvě skupiny prostředků Azure.

  • Vytvoříte první skupinu prostředků, která obsahuje jenom prostředek služby Kubernetes a nemá s ním spojené žádné náklady.

  • Poskytovatel prostředků AKS během nasazení automaticky vytvoří druhou skupinu prostředků nebo skupinu prostředků uzlu. Výchozí název této skupiny prostředků je MC_<resourcegroupname>_<clustername>_<location>, ale můžete zadat jiný název. Další informace najdete v tématu Zadání vlastního jména pro skupinu prostředků uzlů AKS.

    Skupina prostředků uzlu obsahuje všechny prostředky infrastruktury clusteru a zobrazuje poplatky za vaše předplatné. Mezi prostředky patří virtuální počítače uzlu Kubernetes, virtuální sítě, úložiště a další služby. AKS automaticky odstraní skupinu prostředků uzlu při odstranění clusteru, takže byste ji měli použít jenom pro prostředky, které sdílejí životní cyklus clusteru.

Náklady na výpočetní prostředky

Za virtuální počítače Azure platíte podle jejich velikosti a využití. Informace o porovnání výpočetních prostředků Azure s AWS najdete v tématech Výpočetní služby v Azure a AWS.

Obecně platí, že čím větší velikost virtuálního počítače vyberete pro fond uzlů, tím vyšší jsou hodinové náklady na uzly agenta. Čím specializovanější řady virtuálních počítačů používáte pro fond uzlů, například s podporou grafických procesorů (GPU) nebo optimalizováno pro paměť, tím dražší je fond.

Při zkoumání cen virtuálních počítačů Azure mějte na paměti následující body:

  • Ceny se liší podle oblasti a ne všechny služby a velikosti virtuálních počítačů jsou dostupné v každé oblasti.

  • Existuje několik rodin virtuálních počítačů optimalizovaných pro různé typy úloh.

  • Spravované disky použité jako jednotky s operačním systémem se účtují samostatně a do odhadu musíte přidat jejich náklady. Velikost spravovaných disků závisí na třídě, jako jsou disky HDD úrovně Standard, DISKy SSD úrovně Standard, disky SSD úrovně Premium nebo disky SSD úrovně Ultra. Vstupně-výstupní operace za sekundu (IOPS) a propustnost v MB/s závisí na velikosti a třídě. Dočasné disky s operačním systémem jsou bezplatné a jsou zahrnuté v ceně virtuálního počítače.

  • Datové disky, včetně disků vytvořených pomocí trvalých deklarací identity svazků, jsou volitelné a účtují se zvlášť na základě jejich třídy, jako jsou disky HDD úrovně Standard, DISKy SSD úrovně Standard, disky SSD úrovně Premium a disky SSD úrovně Ultra. Do odhadu nákladů je nutné explicitně přidat datové disky. Počet povolených datových disků, disků SSD dočasného úložiště, IOPS a propustnosti v MB/s závisí na velikosti a třídě virtuálního počítače.

  • Čím déle jsou uzly agentů v provozu, tím vyšší jsou celkové náklady na cluster. Vývojová prostředí obvykle nemusí běžet nepřetržitě.

  • Síťová rozhraní jsou bezplatná.

Náklady na úložiště

Rozhraní CSI (Container Storage Interface) je standard pro vystavení systémů úložiště bloků a souborů kontejnerizovaným úlohám v Kubernetes. Díky přijetí a použití CSI může AKS psát, nasazovat a iterovat moduly plug-in, které zpřístupňují úložné systémy Kubernetes, aniž by se dotkly základního kódu Kubernetes nebo čekaly na cykly jeho vydání.

Pokud v clusteru AKS spouštíte úlohy, které používají trvalé svazky CSI, zvažte související náklady na úložiště, které vaše aplikace zřizují a používají. Ovladače úložiště CSI v AKS poskytují nativní podporu pro následující možnosti úložiště:

  • Disky Azure vytvářejí prostředky datového disku Kubernetes. Disky můžou používat Azure Premium Storage, které jsou podporovány vysoce výkonnými disky SSD nebo Azure Standard Storage, které jsou podporovány běžnými pevnými disky nebo disky SSD úrovně Standard. Většina produkčních a vývojových úloh používá Premium Storage. Disky Azure jsou připojené jako ReadWriteOnce, což je zpřístupňuje pouze jednomu uzlu AKS. Pro svazky úložiště, ke kterým může současně přistupovat více podů, použijte Azure Files. Informace o nákladech najdete v tématu ceny Spravované disky.

  • Azure Files připojí sdílené složky protokolu SMB (Server Messaging Block) 3.0/3.1 s podporou účtu Azure Storage k podům AKS. Data můžete sdílet mezi několika uzly a pody. Azure Files může používat úložiště Standard založené na běžných pevných discích nebo úložiště Premium s vysoce výkonnými disky SSD. Azure Files používá účet Azure Storage a načítají se poplatky na základě následujících faktorů:

    • Služba: Objekty blob, soubory, fronty, tabulky nebo nespravované disky
    • Typ účtu úložiště: GPv1, GPv2, blob nebo objekt blob úrovně Premium
    • Odolnost: Místně redundantní úložiště (LRS), zónově redundantní úložiště (ZRS), geograficky redundantní úložiště (GRS) nebo geograficky redundantní úložiště s přístupem pro čtení (RA-GRS)
    • Úroveň přístupu: Horká, studená nebo archivní
    • Operace a přenosy dat
    • Využitá kapacita v GB
  • Azure NetApp Files je k dispozici v několika úrovních skladové položky a vyžaduje minimální zřízenou kapacitu 4 TiB s přírůstky 1 TiB. Azure NetApp Files poplatky vycházejí z následujících faktorů:

    • Skladová jednotka (SKU)
    • Odolnost: LRS, ZRS nebo GRS
    • Velikost nebo zřízená kapacita, nevyužitá kapacita
    • Operace a přenos dat
    • Zálohy a obnovení

Síťové náklady

Přístup k aplikacím, které běží v AKS, může poskytnout několik síťových služeb Azure:

  • Azure Load Balancer. Ve výchozím nastavení Load Balancer používá skladovou položku Standard. Load Balancer poplatky vycházejí z:

    • Pravidla: Počet nakonfigurovaných pravidel vyrovnávání zatížení a odchozích přenosů. Pravidla překladu příchozích síťových adres (NAT) se nezapočítávají do celkového počtu pravidel.
    • Zpracovávaná data: Množství zpracovávaných příchozích a odchozích dat nezávisle na pravidlech. Za Standard Load Balancer bez nakonfigurovaných pravidel se neúčtují žádné hodinové poplatky.
  • Azure Application Gateway. AKS často používá Application Gateway prostřednictvím kontroleru Application Gateway příchozího přenosu dat nebo před jiným kontrolerem příchozího přenosu dat s ručně spravovanými Application Gateway. Application Gateway podporuje směrování brány, ukončení protokolu TLS (Transport-Layer Security) a funkce Web Application Firewall (WAF). Application Gateway poplatky vycházejí z:

    • Pevná cena nastavená hodinou nebo částečně hodinou.
    • Cena za jednotku kapacity, další náklady na základě spotřeby. Každá jednotka kapacity má maximálně jednu výpočetní jednotku, 2 500 trvalých připojení a propustnost 2,22 Mb/s.
  • Veřejné IP adresy mají přidružené náklady, které závisí na:

    • Rezervované vs. dynamické přidružení.
    • Úroveň Basic vs. zabezpečená a zónově redundantní úroveň Standard

Náklady na horizontální navýšení kapacity

Existuje několik možností škálování clusteru AKS za účelem přidání další kapacity do fondů uzlů:

  • Na vyžádání můžete ručně aktualizovat počet virtuálních počítačů, které jsou součástí fondu uzlů, nebo přidat další fondy uzlů.

  • Automatické škálování clusteru AKS sleduje pody, které není možné naplánovat na uzlech kvůli omezením prostředků, a automaticky zvyšuje počet uzlů.

  • AKS podporuje spouštění kontejnerů na Azure Container Instances pomocí implementace virtuálního kubeletu. Virtuální uzel AKS zřídí Container Instances pody, které se spustí během několika sekund, a umožní tak AKS běžet s dostatečnou kapacitou pro průměrnou úlohu. Vzhledem k tomu, že clusteru AKS dojde kapacita, můžete škálovat více Container Instances podů bez správy dalších serverů. Tento přístup můžete kombinovat s automatickým škálováním clusteru a ručním škálováním.

Pokud používáte škálování na vyžádání nebo automatické škálování clusteru, zapomnětte na přidané virtuální počítače. Container Instances poplatky vycházejí z následujících faktorů:

  • Fakturace metrik na základě využití podle skupiny kontejnerů
  • Virtuální procesor a paměť kolekce
  • Použití jednoho kontejneru nebo sdílení více kontejnerů
  • Použití společně naplánovaných kontejnerů, které sdílejí životní cyklus sítě a uzlu
  • Doba využití vypočítaná od spuštění nebo restartování image až do zastavení
  • Přidání poplatku za skupiny kontejnerů Windows

Náklady na upgrade

Součástí životního cyklu clusteru AKS jsou pravidelné upgrady na nejnovější verzi Kubernetes. Je důležité použít nejnovější verze zabezpečení a získat nejnovější funkce. Clustery AKS a fondy s jedním uzlem můžete upgradovat ručně nebo automaticky. Další informace najdete v tématu Upgrade clusteru Azure Kubernetes Service (AKS).

Ve výchozím nastavení AKS konfiguruje upgrady tak, aby se přehouply s jedním uzlem navíc. Výchozí hodnota pro max-surge nastavení minimalizuje přerušení úloh vytvořením dalšího 1 uzlu, který nahradí uzly starší verze před za cordoningem nebo vyprázdněním existujících aplikací. Hodnotu pro fond uzlů můžete přizpůsobit max-surge tak, aby umožňovala kompromis mezi rychlostí upgradu a přerušením upgradu. Zvýšení hodnoty max-surge dokončí proces upgradu rychleji, ale velká hodnota pro max-surge může způsobit přerušení procesu upgradu a další náklady na virtuální počítače navíc.

Další náklady

V závislosti na využití a požadavcích můžou clustery AKS účtovat následující dodatečné náklady:

Optimalizace nákladů

Následující doporučení vám pomůžou optimalizovat náklady na cluster AKS:

  • Projděte si část Optimalizace nákladů v tématu Azure Well-Architected Framework pro AKS.

  • U víceklientských řešení je fyzická izolace nákladnější a zvyšuje režii na správu. Logická izolace vyžaduje více prostředí Kubernetes a zvyšuje prostor pro změny a bezpečnostní hrozby, ale sdílí náklady.

  • Služba Azure Reservations vám může pomoct ušetřit peníze tím, že se zavazujete k provedení plánů na jeden nebo tři roky pro několik produktů, jako jsou virtuální počítače v clusteru AKS. Zarezervování kapacity získáte slevy. Pomocí služby Azure Reservations for Storage a Compute můžete snížit náklady na uzly agentů.

    Rezervace můžou snížit náklady na prostředky až o 72 % oproti průběžným platbám a neovlivňují stav modulu runtime vašich prostředků. Po zakoupení rezervace se sleva automaticky uplatní na vyhovující prostředek. Rezervace si můžete zakoupit v Azure Portal nebo pomocí rozhraní Azure REST API, PowerShellu nebo Azure CLI. Pokud používáte provozní nástroje, které se spoléhají na pracovní prostory služby Log Analytics, zvažte také použití rezervací pro toto úložiště.

  • Přidejte do clusteru AKS jeden nebo více fondů spotových uzlů. Fond spotových uzlů je fond uzlů podporovaný službou Azure Spot Virtual Machine Scale Sets. Použití spotových virtuálních počítačů pro uzly clusteru AKS využívá nevyužitou kapacitu Azure za významné úspory nákladů. Množství dostupné nevyužité kapacity se liší v závislosti na několika faktorech, včetně velikosti uzlu, oblasti a denní doby. Azure přiděluje spotové uzly, pokud je k dispozici kapacita, ale pro spotové uzly neexistuje žádná smlouva SLA. Spotová škálovací sada, která zálohuje fond spotových uzlů, je nasazená v jedné doméně selhání a nenabízí žádné záruky vysoké dostupnosti. Když Azure potřebuje kapacitu zpět, infrastruktura Azure spotové uzly vyřadí.

    Při vytváření fondu spotových uzlů můžete definovat maximální cenu, která se má platit za hodinu, a povolit automatické škálování clusteru, které se doporučuje pro fondy spotových uzlů. Automatické škálování clusteru horizontálně navýšit kapacitu a horizontálně navýšit kapacitu počtu uzlů ve fondu uzlů na základě spuštěných úloh. Pro fondy spotových uzlů automatické škálování clusteru horizontálně navýšit počet uzlů po vyřazení, pokud jsou uzly stále potřeba. Další informace najdete v tématu Přidání fondu spotových uzlů do clusteru Azure Kubernetes Service (AKS).

  • Zvolte správnou velikost virtuálního počítače pro fondy uzlů clusteru AKS na základě potřeb procesoru a paměti vašich úloh. Azure nabízí mnoho různých typů instancí virtuálních počítačů, které odpovídají široké škále případů použití s různými kombinacemi procesoru, paměti, úložiště a síťové kapacity. Každý typ se dodává v jedné nebo více velikostech, takže můžete prostředky snadno škálovat.

    Teď můžete nasazovat a spravovat kontejnerizované aplikace s AKS běžícími na procesorech ampere Altra ARM. Další informace najdete v tématu Azure Virtual Machines s procesory založenými na Ampere Altra ARM.

  • Vytvořte více fondů uzlů s různými velikostmi virtuálních počítačů pro zvláštní účely a úlohy. Používejte tainty a tolerance a popisky uzlů Kubernetes k umístění aplikací náročných na prostředky na konkrétní fondy uzlů, abyste se vyhnuli problémům s hlučným sousedem. Udržujte tyto prostředky uzlů dostupné pro úlohy, které je vyžadují, a neplánujte na těchto uzlech jiné úlohy. Náklady můžete optimalizovat také použitím různých velikostí virtuálních počítačů pro různé fondy uzlů. Další informace najdete v tématu Použití více fondů uzlů v Azure Kubernetes Service (AKS).

  • Fondy uzlů v režimu systému musí obsahovat alespoň jeden uzel, zatímco fondy uzlů uživatelského režimu můžou obsahovat nula nebo více uzlů. Kdykoli je to možné, můžete fond uzlů v uživatelském režimu nakonfigurovat tak, aby automaticky škálovat z 0 uzlů na N uzly. Úlohy můžete nakonfigurovat tak, aby horizontálně navýšit kapacitu a snížit kapacitu pomocí horizontálního automatického škálování podů. Založte automatické škálování na procesoru a paměti nebo využijte automatické škálování založené na událostech Kubernetes (KEDA) na metrikách externího systému, jako je Apache Kafka, RabbitMQ nebo Azure Service Bus.

  • Nezapomeňte správně nastavit požadavky a limity pro pody, abyste zlepšili hustotu aplikací a vyhnuli se přiřazování příliš mnoha prostředků procesoru a paměti vašim úlohám. Pomocí nástroje Prometheus nebo Container Insights můžete sledovat průměrnou a maximální spotřebu procesoru a paměti. Správně nakonfigurujte limity a kvóty pro pody v manifestech YAML, chartech Helm a manifestech Kustomize pro vaše nasazení.

  • Pomocí objektů ResourceQuota můžete nastavit kvóty pro celkové množství paměti a procesoru pro všechny pody, které běží v daném oboru názvů. Systematické používání kvót prostředků zabraňuje problémům s hlučným sousedem, zlepšuje hustotu aplikací a snižuje počet uzlů agentů a celkové náklady. Použijte také objekty LimitRange ke konfiguraci výchozích požadavků procesoru a paměti pro pody v oboru názvů.

  • Pro shlukování použijte Container Instances.

  • Vaše úlohy AKS nemusí běžet nepřetržitě, například konkrétní úlohy ve fondech uzlů vývojového clusteru. Pokud chcete optimalizovat náklady, můžete zcela vypnout cluster AKS nebo zastavit jeden nebo více fondů uzlů v clusteru AKS. Další informace najdete v tématech Zastavení a spuštění clusteru Azure Kubernetes Service (AKS) a Spuštění a zastavení fondu uzlů v Azure Kubernetes Service (AKS).

  • Azure Policy se integruje s AKS prostřednictvím předdefinovaných zásad, aby se použilo centralizované, konzistentní a škálovatelné vynucování a zabezpečení. Povolte doplněk Azure Policy ve vašem clusteru a použijte výchozí požadavky na procesor a omezení a limity prostředků paměti, které zajistí, že jsou v kontejnerech clusteru definované limity prostředků procesoru a paměti.

  • K monitorování a uvolnění nepoužívaných prostředků použijte Azure Advisor .

  • Pomocí rozpočtů a kontrol Microsoft Cost Management si můžete udržovat přehled o výdajích.

Zásady správného řízení nákladů

Cloud může výrazně zlepšit technický výkon obchodních úloh. Cloudové technologie také můžou snížit náklady a režijní náklady na správu prostředků organizace. Tato obchodní příležitost ale také představuje riziko, protože nasazení cloudu může zvýšit potenciál plýtvání a neefektivnosti.

Řízení nákladů je proces průběžné implementace zásad nebo kontrolních mechanismů pro omezení útraty a nákladů. Nativní nástroje Kubernetes i nástroje Azure podporují zásady správného řízení nákladů pomocí proaktivního monitorování a optimalizace nákladů na základní infrastrukturu.

  • Azure Cost Management + Billing je sada nástrojů Microsoftu, které pomáhají analyzovat, spravovat a optimalizovat náklady na úlohy Azure. Pomocí této sady můžete zajistit, aby vaše organizace využívala výhody, které poskytuje cloud.

  • Projděte si osvědčené postupy zásad správného řízení Cloud Adoption Framework pro disciplínu služby Cost Management, abyste lépe pochopili, jak spravovat a řídit náklady na cloud.

  • Prozkoumejte opensourcové nástroje, jako je KubeCost , abyste mohli monitorovat a řídit náklady na clusterY AKS. Přidělení nákladů můžete omezit na nasazení, službu, popisek, pod a obor názvů, což poskytuje flexibilitu při zobrazování a účtování poplatků uživatelů clusteru.

Přispěvatelé

Tento článek spravuje Microsoft. Původně ji napsali následující přispěvatelé.

Hlavní autoři:

Další přispěvatelé:

Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.

Další kroky