Share via


Kosten optimaliseren in Azure Kubernetes Service (AKS)

Kostenoptimalisatie gaat over het maximaliseren van de waarde van resources terwijl onnodige kosten in uw cloudomgeving worden geminimaliseerd. Dit proces omvat het identificeren van rendabele configuratieopties en het implementeren van best practices om de operationele efficiëntie te verbeteren. Een AKS-omgeving kan worden geoptimaliseerd om de kosten te minimaliseren, waarbij rekening wordt gehouden met de prestatie- en betrouwbaarheidsvereisten.

In dit artikel krijgt u meer informatie over:

  • Strategische infrastructuurselectie.
  • Dynamische rechten en automatische schaalaanpassing.
  • Het gebruik van Azure-kortingen voor aanzienlijke besparingen.
  • Holistische bewaking en FinOps-procedures.

De toepassingsomgeving voorbereiden

SKU-familie evalueren

Het is belangrijk om vóór de implementatie de resourcevereisten van uw toepassing te evalueren. Kleine ontwikkelworkloads hebben verschillende infrastructuurbehoeften dan grote workloads die gereed zijn voor productie. Hoewel een combinatie van CPU-, geheugen- en netwerkcapaciteitsconfiguraties sterk van invloed is op de kosteneffectiviteit van een SKU, kunt u de volgende typen virtuele machines (VM's) overwegen:

SKU-familie Beschrijving Gebruiksscenario
Azure Spot Virtual Machines Azure Spot Virtual Machine Scale stelt spot-knooppuntgroepen terug en is geïmplementeerd in één foutdomein zonder sla-garanties (hoge beschikbaarheid of service level agreement). Met spot-VM's kunt u profiteren van niet-gebruikte Azure-capaciteit met aanzienlijke kortingen (tot 90%, in vergelijking met prijzen voor betalen per gebruik). Als Azure capaciteit terug nodig heeft, verwijdert de Azure-infrastructuur de Spot-knooppunten. Het meest geschikt voor ontwikkel-/testomgevingen, workloads die onderbrekingen kunnen verwerken, zoals batchverwerkingstaken en workloads met flexibele uitvoeringstijd.
Ampere Altra Arm-processors (Arm64) Arm64-VM's zijn energie-efficiënt en rendabel, maar doen geen afbreuk aan de prestaties. Met ondersteuning voor Arm64-knooppuntgroepen in AKS kunt u Arm64 Ubuntu-agentknooppunten maken en zelfs Intel- en ARM-architectuurknooppunten in een cluster combineren. Deze ARM-VM's zijn ontworpen om dynamische, schaalbare workloads efficiënt uit te voeren en kunnen tot 50% betere prijsprestaties leveren dan vergelijkbare x86-VM's voor uitschalen van workloads. Het meest geschikt voor web- of toepassingsservers, opensourcedatabases, cloudtoepassingen, gamingservers en meer.
Geoptimaliseerde GPU-SKU's Afhankelijk van de aard van uw workload kunt u overwegen om geoptimaliseerde, geoptimaliseerde, geoptimaliseerde opslag of zelfs GPU-SKU's (grafische verwerkingseenheid) te gebruiken. GPU-VM-grootten zijn gespecialiseerde VM's die beschikbaar zijn met gpu's met één, meerdere en fractionele GPU's. Linux-knooppuntgroepen met GPU in AKS zijn het meest geschikt voor rekenintensieve workloads, zoals grafische rendering, training van grote modellen en deductie.

Notitie

De kosten van berekening verschillen per regio. Wanneer u een goedkopere regio kiest om workloads uit te voeren, moet u zich bewust zijn van de mogelijke gevolgen van latentie en kosten voor gegevensoverdracht. Zie Grootten voor virtuele machines in Azure voor meer informatie over VM-SKU's en hun kenmerken.

Opslagopties beoordelen

Zie de volgende artikelen voor meer informatie over opslagopties en gerelateerde kostenoverwegingen:

Vooraf ingestelde clusterconfiguraties gebruiken

Het kan lastig zijn om de juiste VM-SKU, regio's, aantal knooppunten en andere configuratieopties te kiezen. Met vooraf ingestelde clusterconfiguraties in Azure Portal wordt deze eerste uitdaging offload door aanbevolen configuraties te bieden voor verschillende toepassingsomgevingen die kostenbewust en performant zijn. De voorinstelling Dev/Test is het beste voor het ontwikkelen van nieuwe workloads of het testen van bestaande workloads. De vooraf ingestelde productieeconomie is het beste voor het bedienen van productieverkeer op een kostenbewuste manier als uw workloads onderbrekingen kunnen verdragen. Niet-kritieke functies zijn standaard uitgeschakeld en de vooraf ingestelde waarden kunnen op elk gewenst moment worden gewijzigd.

Overweeg multitenancy

AKS biedt flexibiliteit bij het uitvoeren van multitenant-clusters en het isoleren van resources. Voor vriendelijke multitenancy kunt u clusters en infrastructuur delen tussen teams en bedrijfseenheden via logische isolatie. Kubernetes-naamruimten vormen de logische isolatiegrens voor workloads en resources. Het delen van infrastructuur vermindert de overhead voor clusterbeheer en verbetert ook het resourcegebruik en de poddichtheid binnen het cluster. Zie AKS-overwegingen voor multitenancy en ontwerpclusters voor multitenancy voor multitenancy voor multitenancy en ontwerpclusters voor multitenancy om te bepalen of deze geschikt zijn voor uw organisatiebehoeften.

Waarschuwing

Kubernetes-omgevingen zijn niet volledig veilig voor vijandige multitenancy. Als een tenant in de gedeelde infrastructuur niet kan worden vertrouwd, is er meer planning nodig om te voorkomen dat tenants de beveiliging van andere services beïnvloeden.

Overweeg fysieke isolatiegrenzen. In dit model worden teams of workloads toegewezen aan hun eigen cluster. Extra beheer- en financiële overhead zal een compromis zijn.

Cloudtoepassingen bouwen

Maak uw container zo mag mogelijk

Een lean container verwijst naar het optimaliseren van de grootte en resourcevoetafdruk van de containertoepassing. Controleer of uw basisinstallatiekopieën minimaal zijn en alleen de benodigde afhankelijkheden bevatten. Verwijder overbodige bibliotheken en pakketten. Een kleinere containerinstallatiekopie versnelt de implementatietijden en verhoogt de efficiëntie van schaalbewerkingen. Met artefactstreaming op AKS kunt u containerinstallatiekopieën streamen vanuit Azure Container Registry (ACR). Het haalt alleen de benodigde laag op voor het opstarten van de eerste pod, waardoor de pull-tijd voor grotere afbeeldingen van minuten tot seconden wordt verminderd.

Resourcequota afdwingen

Resourcequota bieden een manier om resources te reserveren en te beperken voor een ontwikkelingsteam of project. Quota worden gedefinieerd in een naamruimte en kunnen worden ingesteld op rekenresources, opslagresources en objectaantallen. Wanneer u resourcequota definieert, voorkomt u dat afzonderlijke naamruimten meer resources verbruiken dan toegewezen. Resourcequota zijn handig voor clusters met meerdere tenants waarin teams infrastructuur delen.

Cluster starten/stoppen gebruiken

Wanneer u onbeheerd blijft, kunnen kleine ontwikkelings-/testclusters onnodige kosten met zich meebrengen. U kunt clusters uitschakelen die niet altijd hoeven te worden uitgevoerd met behulp van de functie voor starten en stoppen van het cluster. Met deze functie worden alle systeem- en gebruikersknooppuntgroepen afgesloten, zodat u niet betaalt voor extra rekenkracht. De status van uw cluster en objecten blijft behouden wanneer u het cluster opnieuw start.

Capaciteitsreserveringen gebruiken

Met capaciteitsreserveringen kunt u rekencapaciteit reserveren in een Azure-regio of beschikbaarheidszone voor elke duur van de tijd. Gereserveerde capaciteit is beschikbaar voor direct gebruik totdat de reservering wordt verwijderd. Het koppelen van een bestaande capaciteitsreserveringsgroep aan een knooppuntgroep garandeert toegewezen capaciteit voor uw knooppuntgroep en helpt u potentiële pieken in prijzen op aanvraag te voorkomen tijdens perioden met een hoge rekenvraag.

Uw omgeving en uitgaven bewaken

Zichtbaarheid vergroten met Microsoft Cost Management

Microsoft Cost Management biedt een breed scala aan mogelijkheden voor cloudbudgettering, prognoses en zichtbaarheid voor kosten binnen en buiten het cluster. De juiste zichtbaarheid is essentieel voor het ontcijferen van uitgaventrends, het identificeren van optimalisatiekansen en het vergroten van de verantwoording van toepassingsontwikkelaars en platformteams. Schakel de AKS Cost Analysis-invoegtoepassing in voor gedetailleerde analyse van clusterkosten door Kubernetes-constructies , samen met Azure Compute-, Netwerk- en Opslagcategorieën.

Azure Monitor

Als u metrische gegevens opneemt via Container Insights, raden we u aan om te migreren naar beheerde Prometheus, wat een aanzienlijke kostenreductie biedt. U kunt metrische gegevens van Container Insights uitschakelen met behulp van de regel voor gegevensverzameling (DCR) en de beheerde Prometheus-invoegtoepassing implementeren, die ondersteuning biedt voor configuratie via Azure Resource Manager, Azure CLI, Azure Portal en Terraform.

Zie best practices voor Azure Monitor en het beheren van kosten voor Container Insights voor meer informatie.

Log Analytics

Voor logboeken van besturingsvlakken kunt u overwegen om de categorieën uit te schakelen die u niet nodig hebt en/of de BASIC Logs-API te gebruiken, indien van toepassing om Log Analytics-kosten te verlagen. Zie de besturingsvlak-/resourcelogboeken van Azure Kubernetes Service (AKS) voor meer informatie. Voor logboeken van gegevensvlakken of toepassingslogboeken kunt u overwegen de instellingen voor kostenoptimalisatie aan te passen.

Workloads optimaliseren via automatisch schalen

Een basislijn samenstellen

Voordat u de instellingen voor automatisch schalen configureert, kunt u Azure Load Testing gebruiken om een basislijn voor uw toepassing tot stand te brengen. Belastingstests helpen u te begrijpen hoe uw toepassing zich gedraagt onder verschillende verkeersomstandigheden en prestatieknelpunten te identificeren. Zodra u een basislijn hebt, kunt u instellingen voor automatisch schalen configureren om ervoor te zorgen dat uw toepassing de verwachte belasting kan verwerken.

Automatisch schalen van toepassingen inschakelen

Automatische schaalaanpassing van verticale pods

Aanvragen en limieten die hoger zijn dan het werkelijke gebruik, kunnen leiden tot overprovisioned workloads en verspilde resources. Aanvragen en limieten die te laag zijn, kunnen daarentegen leiden tot beperkings- en workloadproblemen vanwege een gebrek aan geheugen. Met de Verticale automatische schaalaanpassing van pods (VPA) kunt u CPU- en geheugenresources verfijnen die vereist zijn voor uw pods. VPA biedt aanbevolen waarden voor CPU- en geheugenaanvragen en -limieten op basis van historisch containergebruik, die u handmatig kunt instellen of automatisch kunt bijwerken. Het meest geschikt voor toepassingen met fluctuerende resourcevereisten.

Automatische schaalaanpassing van horizontale pods

Met de horizontale automatische schaalaanpassing van pods (HPA) wordt het aantal podreplica's dynamisch geschaald op basis van waargenomen metrische gegevens, zoals CPU of geheugengebruik. Tijdens perioden met hoge vraag schaalt HPA uit en voegt u meer podreplica's toe om de workload te distribueren. Tijdens perioden van lage vraag wordt HPA ingeschaald, waardoor het aantal replica's wordt verminderd om resources te besparen. Het meest geschikt voor toepassingen met voorspelbare resourcevereisten.

Waarschuwing

Gebruik de VPA niet met de HPA op dezelfde CPU- of geheugengegevens. Deze combinatie kan leiden tot conflicten, omdat beide automatische schaalaanpassingen proberen te reageren op wijzigingen in de vraag met behulp van dezelfde metrische gegevens. U kunt de VPA echter gebruiken voor CPU of geheugen met de HPA voor aangepaste metrische gegevens om overlapping te voorkomen en ervoor te zorgen dat elke automatische schaalaanpassing zich richt op verschillende aspecten van het schalen van werkbelastingen.

Automatisch schalen op basis van Kubernetes-gebeurtenissen

De KEDA-invoegtoepassing (Kubernetes Event Driven Autoscaler) biedt extra flexibiliteit om te schalen op basis van verschillende gebeurtenisgestuurde metrische gegevens die zijn afgestemd op uw toepassingsgedrag. Voor een webtoepassing kan KEDA bijvoorbeeld binnenkomend HTTP-aanvraagverkeer bewaken en het aantal podreplica's aanpassen om ervoor te zorgen dat de toepassing responsief blijft. Voor het verwerken van taken kan KEDA de toepassing schalen op basis van de lengte van de berichtenwachtrij. Beheerde ondersteuning wordt geboden voor alle Azure Scalers.

Automatische schaalaanpassing van infrastructuur inschakelen

Automatische schaalaanpassing van clusters

Om aan de vraag van toepassingen te voldoen, kijkt de automatische schaalaanpassing van clusters naar pods die niet kunnen worden gepland vanwege resourcebeperkingen en wordt het aantal knooppunten in de knooppuntgroep dienovereenkomstig geschaald. Wanneer knooppunten geen actieve pods hebben, schaalt de automatische schaalaanpassing van clusters het aantal knooppunten omlaag. De profielinstellingen voor automatische schaalaanpassing van clusters zijn van toepassing op alle knooppuntgroepen met automatische schaalaanpassing in een cluster. Zie best practices en overwegingen voor automatische schaalaanpassing van clusters voor meer informatie.

Automatische inrichting van knooppunten

Complexe workloads vereisen mogelijk verschillende knooppuntgroepen met verschillende VM-grootteconfiguraties om te voldoen aan de CPU- en geheugenvereisten. Het nauwkeurig selecteren en beheren van verschillende configuraties voor knooppuntgroepen zorgt voor complexiteit en operationele overhead. Nap (Node Autoprovision) vereenvoudigt het selectieproces van de SKU en bepaalt de optimale VM-configuratie op basis van de vereisten voor wachtende podresources om workloads op de meest efficiënte en rendabele manier uit te voeren.

Besparen met Azure-kortingen

Azure-reserveringen

Als uw workload voorspelbaar is en gedurende langere tijd bestaat, kunt u overwegen om een Azure-reservering aan te schaffen om uw resourcekosten verder te verlagen. Azure-reserveringen werken op een termijn van één of drie jaar, met een korting van maximaal 72% in vergelijking met prijzen voor betalen per gebruik voor rekenkracht. Reserveringen zijn automatisch van toepassing op overeenkomende resources. Het meest geschikt voor workloads die zich gedurende een langere periode inzetten voor uitvoering in dezelfde SKU's en regio's.

Azure-besparingsplan

Als u consistente uitgaven hebt, maar uw gebruik van verschillende resources tussen SKU's en regio's maakt Azure Reservations onbereikbaar, kunt u overwegen om een Azure-besparingsplan aan te schaffen. Net als Azure-reserveringen werken Azure-spaarplannen op een termijn van één of drie jaar en zijn ze automatisch van toepassing op resources binnen het voordeelbereik. U verbindt zich ertoe om een vast uurbedrag uit te geven aan rekenresources, ongeacht de SKU of regio. Het meest geschikt voor workloads die gebruikmaken van verschillende resources en/of verschillende datacentrumregio's.

Azure Hybrid Benefit

Met Azure Hybrid Benefit voor Azure Kubernetes Service (AKS) kunt u uw on-premises licenties zonder extra kosten maximaliseren. Gebruik eventuele in aanmerking komende on-premises licenties die ook een actieve Software Assurance (SA) of een in aanmerking komend abonnement hebben om Windows-VM's in Azure tegen lagere kosten te krijgen.

FinOps omarmen om een kostenbesparingscultuur te bouwen

Financiële activiteiten (FinOps) is een discipline die financiële verantwoording combineert met cloudbeheer en optimalisatie. Het richt zich op het stimuleren van afstemming tussen financiële, operationele en technische teams om de cloudkosten te begrijpen en te beheren. De FinOps-stichting heeft verschillende belangrijke projecten, zoals:

  • FinOps Framework: een operationeel model voor het oefenen en implementeren van FinOps.
  • FOCUS-specificatie: een technische specificatie en open standaard voor cloudgebruik, kosten en factureringsgegevens voor alle belangrijke cloudproviderservices.

Volgende stappen

Kostenoptimalisatie is een doorlopende en iteratieve inspanning. Bekijk de volgende aanbevelingen en architectuurrichtlijnen voor meer informatie: