Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du aktiverar kostnadsanalys på Azure Kubernetes Service (AKS) för att visa detaljerade kostnadsdata för klusterresurser.
Översikt över AKS-kostnadsanalys
AKS-kluster förlitar sig på Azure-resurser, till exempel virtuella datorer , virtuella diskar, lastbalanserare och offentliga IP-adresser. Flera program kan använda dessa resurser. Resursförbrukningsmönstren skiljer sig ofta åt för varje program, så deras bidrag till den totala klusterresurskostnaden kan också variera. Vissa program kan ha fotavtryck i flera kluster, vilket kan utgöra en utmaning när du utför kostnadstillskrivning och kostnadshantering.
När du aktiverar kostnadsanalys i aks-klustret kan du visa detaljerad kostnadsallokering som är begränsad till Kubernetes-konstruktioner, till exempel kluster och namnområden, samt Azure Compute-, Nätverks- och lagringsresurser. Tillägget bygger på OpenCost, ett cloud native computing foundation-inkuberingsprojekt med öppen källkod för insamling av användningsdata. Användningsdata stämmas av med dina Azure fakturadata för att ge en omfattande vy över dina AKS-klusterkostnader direkt i Azure portalen.
Mer information om Microsoft Cost Management finns i Börja analysera kostnader i Azure.
När du har aktiverat kostnadsanalystillägget och gjort det möjligt att samla in data i upp till 24 timmar kan du använda informationen i Förstå AKS-användning och kostnader för att förstå dina data.
Förutsättningar
- Klustret måste använda
Standardnivån ellerPremium, inteFreenivån. - 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:
Owner,Contributor,Reader,Cost Management ContributorellerCost Management Reader. - Hanterad identitet som konfigurerats i klustret.
- Drivrutinen Azure CSI (Disk Container Storage Interface) aktiverad i klustret.
- Om du använder Azure CLI behöver du version
2.61.0eller senare installerad. - När du har aktiverat kostnadsanalys kan du inte nedgradera klustret till nivån
Freeutan att först inaktivera kostnadsanalys. - Å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 kostnadsanalys behövda FQDN.
Begränsningar
- Kubernetes-kostnadsvyer är endast tillgängliga för företagsavtal- och Microsoft-kundavtal Microsoft Azure-erbjudandetyper. Mer information finns i Microsoft Azure-erbjudanden som stöds.
- För närvarande stöds inte virtuella noder.
- Tillägget är inte tillgängligt i
usnateastregionerna ,usnatwest,usseceastellerussecwest. Mer information finns i problem och felsökning för tillägget för kostnadsanalys i AKS. - AKS-kostnadsanalystillägget stöder cirka 7 000 containrar per kluster, baserat på den aktuella minnesgränsen på 4 GB och kan komma att ändras.
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 AKS-kluster på nivå
StandardellerPremium. - Uppdatera ett befintligt AKS-kluster
StandardellerPremiumnivå. - Uppgradera ett
Freekluster tillStandardellerPremium. - Uppgradera ett
Standardkluster tillPremium. - Nedgradera ett
Premiumkluster tillStandardnivå.
Aktivera kostnadsanalys i ett nytt kluster
Aktivera kostnadsanalys på ett nytt kluster med kommandot az aks create med --enable-cost-analysis flaggan . I följande exempel skapas ett nytt AKS-kluster på Standard nivån med kostnadsanalys aktiverat:
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="AKSCostRG$RANDOM_SUFFIX"
export CLUSTER_NAME="AKSCostCluster$RANDOM_SUFFIX"
export LOCATION="WestUS2"
az group create --resource-group $RESOURCE_GROUP --location $LOCATION
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis
Resultat:
{
"id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
"location": "WestUS2",
"name": "AKSCostClusterxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.ContainerService/managedClusters"
}
Aktivera kostnadsanalys i ett befintligt kluster
Aktivera kostnadsanalys i ett befintligt kluster med kommandot az aks update med --enable-cost-analysis flaggan . I följande exempel uppdateras ett befintligt AKS-kluster på Standard nivån för att möjliggöra kostnadsanalys. Ersätt $RESOURCE_GROUP och $CLUSTER_NAME med resursgruppen och klusternamnen eller ange dem som miljövariabler.
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-cost-analysis
Resultat:
{
"id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
"name": "AKSCostClusterxxxx",
"properties": {
"provisioningState": "Succeeded"
}
}
Kommentar
En agent distribueras till klustret när du aktiverar tillägget. Agenten förbrukar en liten mängd processor- och minnesresurser.
Varning
AkS-kostnadsanalysens tilläggsminnesanvändning är beroende av antalet distribuerade containrar. Du kan ungefär uppskatta minnesförbrukningen med 200 MB + 0,5 MB per container. Den aktuella minnesgränsen är inställd på 4 GB, vilket stöder cirka 7 000 containrar per kluster. Dessa uppskattningar kan komma att ändras.
Kommentar
När du aktiverar kostnadsanalysen skapas också en hanterad identitet med namnet cost-analysis-identity med läsbehörighet till klustrets nodresursgrupp och tilldelar den till nodpoolerna i klustret.
Detta används för att samla in ARM-identifierare för klustertillgångar för rapportering.
Eftersom nodpoolen redan har en hanterad identitet måste alla kommandon på noden som använder hanterade identiteter ange den identitet som ska användas i stället för att förlita sig på nodpoolens hanterade identitet.
Till exempel az login --identity --resource-id <resource ID of identity>.
Inaktivera kostnadsanalys i ditt AKS-kluster
Inaktivera kostnadsanalys med kommandot az aks update med --disable-cost-analysis flaggan .
az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-cost-analysis
Resultat:
{
"id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
"name": "AKSCostClusterxxxx",
"properties": {
"provisioningState": "Succeeded"
}
}
Kommentar
Om du vill nedgradera klustret från Standard nivån eller Premium till Free nivån medan kostnadsanalys är aktiverat måste du först inaktivera kostnadsanalys.
Visa kostnadsdata
Du kan visa kostnadsallokeringsdata i Azure Portal.
I Azure-portalen går du till den Azure prenumeration som är värd för ditt AKS-kluster. Under Cost Management väljer du Kostnadsanalys. I listan Visa väljer du listrutealternativet och väljer sedan Kuberneteskluster.
Mer information finns i Visa AKS-kostnader i Microsoft Cost Management.
Kostnadsdefinitioner
I Kubernetes-namnrymder och tillgångsvyer kan du se någon av följande avgifter:
| Avgiftstyp | Beskrivning |
|---|---|
| Inaktiva avgifter | Kostnaden för tillgänglig resurskapacitet som inte används av några arbetsbelastningar. |
| Tjänstavgifter | De avgifter som är kopplade till tjänsten, till exempel serviceavtal för drifttid, Microsoft Defender för containrar osv. |
| Systemavgifter | Kostnaden för kapacitet som reserveras av AKS på varje nod för att köra systemprocesser som klustret kräver, inklusive kubelet och containerruntime. Läs mer. |
| Ej allokerade avgifter | Kostnaden för resurser som inte kunde allokeras till namnområden. |
Kommentar
Vanligtvis slutför systemet och gör kostnads- och användningsdata tillgängliga inom 8 till 24 timmar.
Felsökning
Om du har problem, till exempel att cost-agent podden blir OOMKilled eller fastnar i ett Pending tillstånd, se Felsökningsguide för problem med AKS-kostnadsanalystillägg.
Nästa steg
Mer information om kostnader i AKS finns i Förstå användning och kostnader för Azure Kubernetes Service (AKS).