Kostnadsanalys för Azure Kubernetes Service
Ett AKS-kluster (Azure Kubernetes Service) är beroende av Azure-resurser som virtuella datorer, virtuella diskar, lastbalanserare och offentliga IP-adresser. Flera program kan använda dessa resurser, som kan underhållas av olika team i din organisation. Resursförbrukningsmönster för dessa program är ofta varierande, så deras bidrag till den totala klusterresurskostnaden kan också variera. Vissa program kan också ha fotavtryck i flera kluster, vilket kan utgöra en utmaning när du utför kostnadstillskrivning och kostnadshantering.
Tidigare aggregerade Microsoft Cost Management (MCM) klusterresursförbrukningen under klusterresursgruppen. Du kan använda MCM för att analysera kostnader, men det fanns flera utmaningar:
Det fanns ingen Azure-inbyggd funktion för att visa klusterresursanvändning på en nivå som är mer detaljerad än ett kluster. Det fanns ingen uppdelning i diskreta kategorier som beräkning (inklusive CPU-kärnor och minne), lagring och nätverk.
Det fanns inga Azure-inbyggda funktioner för att skilja mellan olika typer av kostnader, till exempel mellan enskilda programkostnader och delade kostnader. MCM rapporterade kostnaden för resurser, men det fanns ingen insikt i hur mycket av resurskostnaden som användes för att köra enskilda program, hur mycket som reserverades för systemprocesser som krävdes av klustret eller vilka inaktiva kostnader som var associerade med klustret.
Det fanns ingen Azure-intern mekanism för att analysera kostnader i flera kluster i samma prenumerationsomfång.
Därför kan du ha använt lösningar från tredje part för att samla in och analysera resursförbrukning och kostnader efter Kubernetes-specifika detaljnivåer, till exempel efter namnområde eller podd. Lösningar från tredje part kräver dock arbete för att distribuera, finjustera och underhålla för varje AKS-kluster. I vissa fall måste du till och med betala för avancerade funktioner, vilket ökar klustrets totala ägandekostnad.
För att hantera den här utmaningen har AKS integrerats med MCM för att erbjuda detaljerad kostnadsgranskning som omfattar Kubernetes-konstruktioner, till exempel kluster och namnområde, utöver kategorierna Azure Compute, Network och Storage.
AKS-kostnadsanalystillägget bygger på OpenCost, ett sandbox-projekt för molnbaserad databehandling med öppen källkod för insamling av användningsdata. Kostnadsanalysen stämmas av med dina Azure-fakturadata. Efterbearbetade data visas direkt i MCM Cost Analysis-portalen.
Förutsättningar och begränsningar
Klustret måste vara antingen
Standard
ellerPremium
nivå, inte nivåFree
.Om du vill visa information om kostnadsanalys måste du ha någon av följande roller i prenumerationen som är värd för klustret: Ägare, Deltagare, Läsare, Kostnadshanteringsdeltagare eller Kostnadshanteringsläsare.
När du har aktiverat kostnadsanalys kan du inte nedgradera klustret till nivån utan att
Free
först inaktivera kostnadsanalys.Klustret måste distribueras med ett Microsoft Entra-arbetsbelastnings-ID konfigurerat.
Kubernetes-kostnadsvyer är endast tillgängliga för följande Typer av Microsoft Azure-erbjudanden. Mer information om erbjudandetyper finns i Microsoft Azure-erbjudanden som stöds.
- Enterprise-avtal
- Microsoft-kundavtal
Åtkomst till Azure API, inklusive ARM-API (Azure Resource Manager). En lista över fullständigt kvalificerade domännamn (FQDN) som krävs finns i AKS Cost Analysis required FQDN (AKS Cost Analysis required FQDN).
Virtuella noder stöds inte just nu.
AKS Automatic stöds inte just nu.
Om du använder Azure CLI måste du ha versionen
2.61.0
eller senare installerad.
Aktivera kostnadsanalys i ditt AKS-kluster
Du kan aktivera kostnadsanalysen --enable-cost-analysis
med flaggan under någon av följande åtgärder:
Skapa ett
Standard
AKS-kluster på nivå ellerPremium
nivå.Uppdatera ett AKS-kluster som redan finns på
Standard
ellerPremium
på nivån.Uppgradera ett
Free
kluster tillStandard
ellerPremium
.Uppgradera ett
Standard
kluster tillPremium
.Nedgradera ett
Premium
kluster tillStandard
nivå.
I följande exempel skapas ett nytt AKS-kluster på Standard
nivån med kostnadsanalys aktiverat:
az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis
I följande exempel uppdateras ett befintligt AKS-kluster på Standard
nivån för att aktivera kostnadsanalys:
az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis
Varning
AkS-kostnadsanalysens tilläggsminnesanvändning är beroende av antalet distribuerade containrar. Minnesförbrukningen kan ungefärligt beräknas med 200 MB + 0,5 MB per container. Den aktuella minnesgränsen är inställd på 4 GB, vilket ger stöd för cirka 7 000 containrar per kluster. Dessa uppskattningar kan vara mer eller mindre beroende på olika faktorer och kan komma att ändras.
Om du har problem som att tilläggspodden fastnar OOMKilled
eller fastnar i ett Pending
tillstånd kan du läsa felsökningsguiden för aks-kostnadsanalystillägg .
Inaktivera kostnadsanalys
Du kan inaktivera kostnadsanalys när som helst med hjälp av az aks update
.
az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis
Kommentar
Om du tänker nedgradera klustret från Standard
nivåerna eller Premium
till Free
nivån medan kostnadsanalys är aktiverat måste du först uttryckligen inaktivera kostnadsanalys.
Visa kostnadsdata
Du kan visa kostnadsallokeringsdata i Azure Portal. Mer information om hur du navigerar i användargränssnittsvyn för kostnadsanalys finns i Cost Management-dokumentationen.
Kostnadsdefinitioner
I kubernetes-namnrymder och tillgångsvyer visas följande avgifter:
- Inaktiva avgifter: Representerar kostnaden för tillgänglig resurskapacitet som inte användes av några arbetsbelastningar.
- Tjänstavgifter: Representerar de avgifter som är associerade med tjänsten, till exempel serviceavtal för drifttid, Microsoft Defender för containrar osv.
- Systemavgifter: Representerar kostnaden för kapacitet som reserverats av AKS på varje nod för att köra systemprocesser som krävs av klustret, inklusive kubelet- och containerkörningen. Läs mer.
- Ej allokerade avgifter: Representerar kostnaden för resurser som inte kunde allokeras till namnområden.
Kommentar
Det kan ta upp till en dag innan data slutförs. Efter 24 timmar har eventuella variationer i kostnaderna för föregående dag stabiliserats.
Felsökning
Se följande guide för att felsöka problem med AKS-kostnadsanalystillägg.
Läs mer
Synlighet är en del av kostnadshantering. Se Optimera kostnader i Azure Kubernetes Service (AKS) för andra metodtips för hur du får kontroll över din kubernetes-kostnad.
Azure Kubernetes Service