Metodtips för kostnadsoptimering i Azure Kubernetes Service (AKS)

Kostnadsoptimering handlar om att maximera resursvärdet samtidigt som onödiga utgifter i din molnmiljö minimeras. Den här processen omfattar identifiering av kostnadseffektiva konfigurationsalternativ och implementering av metodtips för att förbättra driftseffektiviteten. En AKS-miljö kan optimeras för att minimera kostnaderna med hänsyn till prestanda- och tillförlitlighetskrav.

I den här artikeln lär du dig mer om:

  • Börjar med AKS Automatic för inbyggd kostnadsoptimering.
  • Holistisk övervakning och FinOps-metoder.
  • Val av strategisk infrastruktur.
  • Dynamisk rätt dimensionering och automatisk skalning.
  • Utnyttja Azure-rabatter för stora besparingar.

Börja med AKS Automatic för inbyggd kostnadsoptimering

AKS Automatic är ett klusterläge som förkonfigurerar många av de kostnadsoptimeringsmetoder som beskrivs i den här artikeln. Om du skapar ett nytt kluster bör du överväga AKS Automatic för att minska den tekniska ansträngningen, konfigurationsrisken och de löpande driftkostnaderna som leder till onödiga molnutgifter.

AKS Automatic tillhandahåller som standard följande kostnadsoptimeringsfunktioner, utan någon extra konfiguration:

Förmåga Kostnadsförmån
Automatisk etablering av noder (NAP) Väljer automatiskt den mest kostnadseffektiva vm-SKU:n för varje arbetsbelastning baserat på faktiska poddresursbegäranden. Eliminerar behovet av manuell hantering av nodpooler och överprovisionering.
Automatisk skalning av arbetsbelastningar (VPA, HPA och KEDA) Alla autoskalare för arbetsbelastningar är aktiverade som standard, så poddar och noder skalas dynamiskt utifrån den faktiska efterfrågan i stället för antaganden om toppbelastning.
Effektiv binpackning Poddar schemaläggs för att maximera nodanvändningen, vilket minskar det totala antalet noder som krävs för att hantera dina arbetsbelastningar.
Hanterad Prometheus Managed Prometheus är standardmåttplattformen. Du undviker den högre kostnaden för Container Insights-mått utan migreringsarbete.
Distributionsskydd Azure Policy-principer ser till att resursbegäranden och resursgränser tillämpas på alla poddar när framtvingandeläget är aktiverat, vilket förhindrar okontrollerad resursförbrukning och överallokering på klusternivå.

För arbetsbelastningar som kräver AKS Standard beskriver resten av den här artikeln var och en av dessa metoder och hur du konfigurerar dem manuellt. Om AKS Automatic tillhandahåller en metod som standard anger en anteckning att inga extra steg behövs.

Omfamna FinOps för att skapa en kostnadsbesparande kultur

Finansiella åtgärder (FinOps) är ett område som kombinerar ekonomiskt ansvar med molnhantering och optimering. Den fokuserar på att driva anpassningen mellan ekonomi-, drifts- och teknikteam för att förstå och kontrollera molnkostnader. FinOps-stiftelsen har flera viktiga projekt, till exempel FinOps Framework och FOCUS-specifikationen.

Mer information finns i Vad är FinOps?

Välj kostnadseffektiv infrastruktur och klusterkonfiguration

Utvärdera SKU-familjen

Anteckning

Om du använder AKS Automatic väljer automatisk nodetablering (NAP) automatiskt den mest kostnadseffektiva VM-SKU:n för varje arbetslast baserat på dess resurskrav. Du behöver inte utvärdera, skapa eller hantera nodpooler manuellt.

Det är viktigt att utvärdera resurskraven för ditt program före distributionen. Små utvecklingsarbetsbelastningar har olika infrastrukturbehov än stora produktionsklara arbetsbelastningar. Även om en kombination av processor-, minnes- och nätverkskapacitetskonfigurationer kraftigt påverkar kostnadseffektiviteten för en SKU bör du överväga följande typer av virtuella datorer:

SKU-familj beskrivning Bäst för
Azure Spot-virtuella datorer Azure Spot-skalningsuppsättningar för virtuella datorer används för Spot-nodpooler och distribueras till en enda feldomän utan garantier för hög tillgänglighet eller SLA-garantier. Spot-VM:ar gör att du kan dra nytta av outnyttjad Azure-kapacitet med betydande rabatter (upp till 90 % jämfört med pris enligt förbrukning). Om Azure behöver få tillbaka kapacitet avlägsnar Azure-infrastrukturen Spot-noderna. Utvecklings-/testmiljöer, arbetsbelastningar som kan hantera avbrott som batchbearbetningsjobb och arbetsbelastningar med flexibel körningstid.
ARM-baserade processorer (Arm64) Virtuella Arm64-datorer är energieffektiva och kostnadseffektiva utan att äventyra prestanda. Med stöd för Arm64-nodpool i AKS kan du skapa Arm64 Ubuntu-agentnoder och blanda Intel- och Arm-arkitekturnoder i ett kluster. Dessa virtuella datorer är utformade för att effektivt köra dynamiska, skalbara arbetsbelastningar och kan leverera upp till 50% bättre prisprestanda än jämförbara x86-baserade virtuella datorer för utskalningsarbetsbelastningar. Webb- eller programservrar, databaser med öppen källkod, molnbaserade program, spelservrar med mera.
GPU-optimerade SKU:er Beroende på vilken typ av arbetsbelastning du har bör du överväga att använda beräkningsoptimerade, minnesoptimerade, lagringsoptimerade eller GPU-optimerade VM-SKU:er. GPU-VM-storlekar är specialiserade VM:er som finns med enstaka, flera och fraktionerade GPU:er. GPU-aktiverade Linux-nodpooler i AKS passar bäst för beräkningsintensiva arbetsbelastningar som grafikrendering, stor modellträning och slutsatsdragning.

Anteckning

Kostnaden för beräkning varierar mellan regioner. När du väljer en billigare region för att köra arbetsbelastningar bör du vara medveten om den potentiella effekten av svarstid och kostnader för dataöverföring. Mer information om VM-SKU:er och deras egenskaper finns i Storlekar för virtuella datorer i Azure.

Granska lagringsalternativ

Mer information om lagringsalternativ och relaterade kostnadsöverväganden finns i följande artiklar:

Använda förinställda klusterkonfigurationer

Det kan vara svårt att välja rätt VM SKU, regioner, antal noder och andra konfigurationsalternativ. Cluster förinställda konfigurationer i Azure-portalen avlastar den här första utmaningen genom att tillhandahålla rekommenderade konfigurationer för olika programmiljöer som är kostnadsmedvetna och högpresterande. Förinställningen Dev/Test är bäst för att utveckla nya arbetsbelastningar eller testa befintliga arbetsbelastningar. Förinställningen Produktionsekonomi är bäst för att hantera produktionstrafik på ett kostnadsmedvetet sätt om dina arbetsbelastningar kan tolerera avbrott. Icke-kritiska funktioner är inaktiverade som standard och du kan ändra förinställda värden när som helst.

En mer omfattande metod som går utöver statiska förinställningar finns i AKS Automatic. AKS Automatic hanterar fullständigt nodpooler med hjälp av nodbaserad automatisk etablering (NAP) som kontinuerligt rätt storleksanpassar infrastrukturen efter dina faktiska arbetsbelastningskrav. Det aktiverar också alla autoskalare för arbetsbelastningar som standard och upprätthåller resursstyrning genom driftsättningsskydd, vilket är ytterligare fördelar som klusterförinställningar inte erbjuder.

Överväg multihyresgästmodellen

AKS ger flexibilitet i hur du kör kluster med flera klientorganisationer och isolerar resurser. För praktisk multitenancy kan du dela kluster och infrastruktur mellan team och affärsenheter genom logisk isolering. Kubernetes-namnområden utgör den logiska isoleringsgränsen för arbetsbelastningar och resurser. Delningsinfrastruktur minskar kostnaderna för klusterhantering samtidigt som resursanvändningen och podddensiteten i klustret förbättras. Mer information om flera klientorganisationer i AKS och för att avgöra om det är rätt för organisationens behov finns i AKS-överväganden för kluster för flera klientorganisationer och design för flera klientorganisationer.

Varning

Kubernetes-miljöer är inte helt säkra för fientlig multitenans. Om det inte går att lita på någon klientorganisation i den delade infrastrukturen krävs mer planering för att förhindra att klientorganisationer påverkar säkerheten för andra tjänster.

Överväg fysiska isoleringsgränser . I den här modellen tilldelas team eller arbetsuppgifter till sitt eget kluster. Extra hantering och finansiella omkostnader är en kompromiss.

Minska resursavfall via program- och klusterkonfiguration

Gör containern så slimmad som möjligt

En slimmad container handlar om att optimera storleken och resursanvändningen för den kontaineriserade applikationen. Kontrollera att basavbildningen är minimal och endast innehåller nödvändiga beroenden. Ta bort eventuella onödiga bibliotek och paket. En mindre containeravbildning påskyndar distributionstiderna och ökar skalningsåtgärdernas effektivitet. Artifact Streaming på AKS kan du strömma containeravbildningar från Azure Container Registry (ACR). Den hämtar endast det nödvändiga lagret för inledande poddstart, vilket minskar hämtningstiden för större bilder från minuter till sekunder.

Framtvinga resurskvoter

Anteckning

AKS Automatic-kluster säkerställer automatiskt resursbegäran och resursgränser för alla poddar genom driftsättningsskydd, som som standard är aktiverade i efterlevnadsläge. Detta förhindrar okontrollerad resursförbrukning och överallokering utan att manuell policykonfiguration behövs. För AKS Standard-kluster konfigurerar du resurskvoter på namnområdesnivå enligt beskrivningen i det här avsnittet.

Resurskvoter är ett sätt att reservera och begränsa resurser i ett utvecklingsteam eller projekt. Kvoter definieras i ett namnområde och kan anges för beräkningsresurser, lagringsresurser och antal objekt. När du definierar resurskvoter hindras enskilda namnområden från att förbruka fler resurser än vad som allokeras. Resurskvoter är användbara för kluster med flera klientorganisationer där team delar infrastruktur.

Använda klusterstart/-stopp

När de lämnas obevakade kan små utvecklings- och testkluster generera onödiga kostnader. Du kan inaktivera kluster som inte behöver köras hela tiden med hjälp av start- och stoppfunktionen för klustret. Den här funktionen stänger av alla system- och användarnodpooler så att du inte betalar för extra beräkning. Tillståndet för klustret och objekten behålls när du startar klustret igen.

Använda kapacitetsreservationer

Med kapacitetsreservationer kan du reservera beräkningskapacitet i en Azure region eller tillgänglighetszon under en tidsperiod. Reserverad kapacitet är tillgänglig för omedelbar användning tills reservationen har tagits bort. Om du associerar en befintlig kapacitetsreservationsgrupp till en nodpool garanteras allokerad kapacitet för din nodpool och hjälper dig att undvika potentiella pristoppar vid efterfrågan under perioder med hög efterfrågan på beräkningskapacitet.

Övervaka din miljö och dina utgifter

Öka synligheten med Microsoft Cost Management

Microsoft Cost Management erbjuder en bred uppsättning funktioner för att hjälpa till med molnbudgetering, prognostisering och synlighet för kostnader både inom och utanför klustret. Korrekt synlighet är viktigt för att dechiffrera utgiftstrender, identifiera optimeringsmöjligheter och öka ansvarsskyldigheten bland programutvecklare och plattformsteam. Aktivera AKS Cost Analysis-tillägget för detaljerad klusterkostnadsuppdelning efter Kubernetes-konstruktioner tillsammans med kategorierna Azure Compute, Network och Storage.

Azure Monitor

Anteckning

AKS Automatiska kluster använder hanterad Prometheus som standardmåttplattform. Container Insights-mått är inte aktiverade som standard. Om du använder AKS Automatic finns den här kostnadsoptimeringen redan på plats och inga migreringssteg krävs.

Om du matar in måttdata via Container Insights rekommenderar vi att du migrerar till hanterad Prometheus, vilket ger en betydande kostnadsminskning. Du kan inaktivera Container Insights-mått med hjälp av datainsamlingsregeln (DCR) och distribuera det hanterade Prometheus-tillägget, som stöder konfiguration via Azure Resource Manager, Azure CLI, Azure Portal och Terraform.

Mer information finns i Metodtips för Azure Monitor och hantering av kostnader för Container Insights.

Logganalys

För kontrollplansloggar bör du överväga att inaktivera de kategorier som du inte behöver och/eller använda API:et grundläggande loggar när det är tillämpligt för att minska Log Analytics-kostnaderna. Mer information finns i Kontrollplan/resursloggar för Azure Kubernetes Service (AKS). För dataplansloggar eller programloggar bör du överväga att justera inställningarna för kostnadsoptimering.

Du kan också använda transformeringar i Azure Monitor för att filtrera eller ändra kontrollplans- och dataplansloggar innan de skickas till en Log Analytics-arbetsyta. Mer information om hur du skapar en transformering finns i Skapa en transformering i Azure Monitor.

Kostnadsrekommendationer från Azure Advisor

AKS-kostnadsrekommendationer i Azure Advisor ger rekommendationer som hjälper dig att uppnå kostnadseffektivitet utan att offra tillförlitligheten. Advisor analyserar dina resurskonfigurationer och rekommenderar optimeringslösningar. Mer information finns i Hämta kostnadsrekommendationer för Azure Kubernetes Service (AKS) i Azure Advisor.

Optimera arbetsbelastningar via automatisk skalning

Upprätta en baslinje

Innan du konfigurerar inställningarna för automatisk skalning kan du använda Azure Load Testing för att upprätta en baslinje för ditt program. Belastningstestning hjälper dig att förstå hur ditt program beter sig under olika trafikförhållanden och identifierar flaskhalsar i prestanda. När du har en baslinje kan du konfigurera inställningar för automatisk skalning för att säkerställa att programmet kan hantera den förväntade belastningen.

Aktivera automatisk skalning av program

Autoskalning av lodrät podd

Anteckning

AKS Automatiska kluster har VPA aktiverat som standard. Om du använder AKS Standard, se Använd Vertical Pod Autoscaler i Azure Kubernetes Service (AKS) för att aktivera och konfigurera VPA.

Begäranden och gränser som är högre än den faktiska användningen kan resultera i överdimensionerade arbetsbelastningar och bortkastade resurser. Begäranden och gränser som är för låga kan däremot leda till begränsnings- och arbetsbelastningsproblem på grund av minnesbrist. Med VPA (Vertical Pod Autoscaler) kan du finjustera processor- och minnesresurser som krävs av dina poddar. VPA innehåller rekommenderade värden för cpu- och minnesbegäranden och gränser baserat på historisk containeranvändning, som du kan ange manuellt eller uppdatera automatiskt. Bäst för program med varierande resurskrav. Med VPA:s rekommendationsläge av läge kan team granska resursförslag utan att tillämpa dem automatiskt. Det här läget kan aktiveras under testningen, och VPA-rekommendationer kan användas för att ange processor- och minnesbegäran och gränser för produktionsmiljöer.

Vågrät automatisk skalning av Poddar

Anteckning

AKS Automatic-kluster har HPA aktiverat som standard. Om du använder AKS Standard konfigurerar du HPA för dina arbetsbelastningar enligt anvisningarna i Horisontell automatisk skalning av poddar.

HPA (Horizontal Pod Autoscaler) skalar dynamiskt antalet poddrepliker baserat på observerade mått, till exempel PROCESSOR- eller minnesanvändning. Under perioder med hög efterfrågan skalar HPA ut och lägger till fler poddrepliker för att distribuera arbetsbelastningen. Under perioder med låg efterfrågan skalar HPA in, vilket minskar antalet repliker för att spara resurser. Bäst för program med förutsägbara resurskrav.

Varning

Du bör inte använda VPA med HPA på samma CPU- eller minnesmått. Den här kombinationen kan leda till konflikter, eftersom båda autoskalarna försöker svara på ändringar i efterfrågan med hjälp av samma mätvärden. Du kan dock använda VPA för CPU eller minne med HPA för anpassade metrik för att förhindra överlappning och se till att varje autoskalare fokuserar på distinkta aspekter av arbetsbelastningens skalning.

Kubernetes händelsedriven autoskalning

Anteckning

AKS Automatiska kluster har KEDA aktiverat som standard. Om du använder AKS Standard läser du Installera KEDA-tillägget med hjälp av Azure CLI för att aktivera KEDA.

Tillägget Kubernetes Event-driven Autoscaler (KEDA) ger extra flexibilitet att skala baserat på olika händelsedrivna mått som överensstämmer med ditt programbeteende. För ett webbprogram kan KEDA till exempel övervaka inkommande HTTP-begärandetrafik och justera antalet poddrepliker för att säkerställa att programmet förblir responsivt. För bearbetning av jobb kan KEDA skala programmet baserat på meddelandekölängden. Hanterat stöd tillhandahålls för alla Azure Scalers. MED KEDA kan du också skala ned till 0 repliker, särskilt till hjälp för sporadiska händelsedrivna arbetsbelastningar, regelbunden maskininlärning (ML) eller GPU-arbetsbelastningar samt utvecklings-/testmiljöer eller miljöer med låg trafik.

Aktivera automatisk skalning av infrastruktur

Autoskalning av kluster

Anteckning

I AKS Automatic hanteras nodskalning av nodens automatiska etablering (NAP), som är förkonfigurerad som standard. För AKS Standard utan NAP konfigurerar du autoskalning av kluster enligt beskrivningen i det här avsnittet.

För att hålla jämna steg med efterfrågan på applikationer övervakar kluster-autoskalaren poddar som inte kan schemaläggas på grund av resursbegränsningar och anpassar antalet noder i nodpoolen därefter. När noder inte har några körande poddar minskar Clusterskalaren antalet noder. Profilinställningarna för autoskalning av kluster gäller för alla autoskalningsaktiverade nodpooler i ett kluster. För mer information, se Autoskalning av kluster: bästa praxis och överväganden.

Automatisk nodtilldelning

Anteckning

I AKS Automatic är automatisk nodetablering (NAP) förkonfigurerat som standard. AKS väljer den optimala vm-SKU:n för varje arbetsbelastning automatiskt, utan att det krävs något manuellt skapande av nodpool eller SKU-val. För AKS Standard-kluster följer du stegen i Aktivera eller inaktivera NAP i AKS för att aktivera NAP.

Komplicerade arbetsbelastningar kan kräva flera nodpooler med olika vm-storlekskonfigurationer för att uppfylla processor- och minneskraven. Om du väljer och hanterar flera konfigurationer av nodpooler på ett korrekt sätt ökar komplexiteten och driftskostnaderna. Automatisk etablering av noder (NAP) förenklar SKU-urvalsprocessen och avgör den optimala VM-konfigurationen baserat på väntande krav på poddresurser för att köra arbetsbelastningar på det mest effektiva och kostnadseffektiva sättet.

Spara med Azure-rabatter

Azure-reservationer

Om din arbetsbelastning är förutsägbar och finns under en längre tid bör du överväga att köpa en Azure-reservation för att ytterligare minska dina resurskostnader. Azure-reservationer fungerar på ett eller tre års sikt och erbjuder upp till 72 % rabatt jämfört med priser för användning efter behov för datorkapacitet. Reservationer gäller automatiskt för matchande resurser. Bäst för arbetsbelastningar som ska köras i samma SKU:er och regioner under en längre tid.

Azure Besparingsplan

Om du har konsekventa utgifter, men din användning av olika resurser mellan SKU:er och regioner gör Azure-reservationer ogenomförbara kan du överväga att köpa en Azure-sparplan. Precis som Azure-reservationer fungerar Azure Savings Plans på en ettårig eller treårsperiod och gäller automatiskt för alla resurser inom förmånsomfånget. Du åtar dig att spendera ett fast timbelopp på beräkningsresurser oavsett SKU eller region. Bäst för arbetsbelastningar som använder olika resurser och/eller olika datacenterregioner.

Azure Hybrid-förmån

Azure Hybrid-förmån för Azure Kubernetes Service (AKS) kan du maximera dina lokala licenser utan extra kostnad. Använd eventuella kvalificerade lokala licenser som också har en aktiv Software Assurance (SA) eller en kvalificerande prenumeration för att få virtuella Windows-datorer i Azure till en reducerad kostnad.

Nästa steg

Kostnadsoptimering är ett pågående och iterativt arbete. Läs mer genom att läsa följande rekommendationer och arkitekturvägledning: