Kostnadsanalys för Azure Kubernetes Service (AKS)

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 Standard nivån eller Premium , inte Free nivå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 Contributoreller Cost 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.0 eller senare installerad.
  • När du har aktiverat kostnadsanalys kan du inte nedgradera klustret till nivån Free utan 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, usseceasteller ussecwest . 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å Standard eller Premium.
  • Uppdatera ett befintligt AKS-kluster Standard eller Premium nivå.
  • Uppgradera ett Free kluster till Standard eller Premium.
  • Uppgradera ett Standard kluster till Premium.
  • Nedgradera ett Premium kluster till Standard nivå.

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).