Delen via


Kostenanalyse van Azure Kubernetes Service (AKS)

In dit artikel leert u hoe u kostenanalyse kunt inschakelen in Azure Kubernetes Service (AKS) om gedetailleerde kostengegevens voor clusterresources weer te geven.

Over kostenanalyse

AKS-clusters zijn afhankelijk van Azure-resources, zoals virtuele machines (VM's), virtuele schijven, load balancers en openbare IP-adressen. Meerdere toepassingen kunnen deze resources gebruiken. De patronen voor resourceverbruik verschillen vaak voor elke toepassing, zodat hun bijdrage aan de totale kosten voor clusterresources ook kan variëren. Sommige toepassingen hebben mogelijk footprints in meerdere clusters, wat een uitdaging kan vormen bij het uitvoeren van kostentoewijzing en kostenbeheer.

Wanneer u kostenanalyse inschakelt in uw AKS-cluster, kunt u gedetailleerde kostentoewijzing weergeven die is gericht op Kubernetes-constructies, zoals clusters en naamruimten, en Azure Compute-, netwerk- en opslagresources. De invoegtoepassing is gebouwd op OpenCost, een opensource Cloud Native Computing Foundation Incubating-project voor het verzamelen van gebruiksgegevens. Gebruiksgegevens worden afgestemd op uw Azure-factuurgegevens om een uitgebreid overzicht te bieden van de kosten van uw AKS-cluster rechtstreeks in de Kostenbeheerweergaven van Azure Portal.

Zie Kosten analyseren in Azure voor meer informatie over Microsoft Cost Management.

Nadat u de invoegtoepassing voor kostenanalyse hebt ingeschakeld en tijd hebt toegestaan voor het verzamelen van gegevens, kunt u de informatie gebruiken in Inzicht in het gebruik en de kosten van AKS, zodat u inzicht krijgt in uw gegevens.

Vereiste voorwaarden

  • Uw cluster moet de Standard of Premium laag gebruiken, niet de Free laag.
  • Als u informatie over kostenanalyse wilt weergeven, moet u een van de volgende rollen hebben voor het abonnement dat als host fungeert voor het cluster: , , , of OwnerContributor. ReaderCost Management ContributorCost Management Reader
  • Beheerde identiteit die is geconfigureerd op uw cluster.
  • Als u de Azure CLI gebruikt, moet u versie 2.61.0 of hoger hebben geïnstalleerd.
  • Zodra u kostenanalyse hebt ingeschakeld, kunt u uw cluster niet downgraden naar de Free laag zonder eerst kostenanalyse uit te schakelen.
  • Toegang tot de Azure-API, inclusief ARM-API (Azure Resource Manager). Zie AKS Cost Analysis required FQDN voor een lijst met volledig gekwalificeerde domeinnamen (FQDN's).

Beperkingen

  • Kubernetes-kostenweergaven zijn alleen beschikbaar voor de Enterprise Overeenkomst en Microsoft-klantovereenkomst Microsoft Azure-aanbiedingstypen. Zie Ondersteunde Microsoft Azure-aanbiedingen voor meer informatie.
  • Op dit moment worden virtuele knooppunten niet ondersteund.

Kostenanalyse inschakelen op uw AKS-cluster

U kunt de kostenanalyse met de --enable-cost-analysis vlag inschakelen tijdens een van de volgende bewerkingen:

  • Maak een Standard- of Premium-niveau AKS-cluster aan.
  • Een bestaand Standard AKS-cluster of Premium laag bijwerken.
  • Free Een cluster upgraden naar Standard of Premium.
  • Standard Een cluster upgraden naar Premium.
  • Downgraden van een Premium cluster naar Standard laag.

Kostenanalyse inschakelen op een nieuw cluster

Schakel kostenanalyse in op een nieuw cluster met behulp van de az aks create opdracht met de --enable-cost-analysis vlag. In het volgende voorbeeld wordt een nieuw AKS-cluster gemaakt in de Standard laag waarvoor kostenanalyse is ingeschakeld:

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

Resultaten:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "location": "WestUS2",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    },
    "tags": null,
    "type": "Microsoft.ContainerService/managedClusters"
}

Kostenanalyse inschakelen op een bestaand cluster

Schakel kostenanalyse in op een bestaand cluster met behulp van de az aks update opdracht met de --enable-cost-analysis vlag. In het volgende voorbeeld wordt een bestaand AKS-cluster in de Standard laag bijgewerkt om kostenanalyse in te schakelen:

az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --enable-cost-analysis

Resultaten:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Notitie

Er wordt een agent geïmplementeerd in het cluster wanneer u de add-on inschakelt. De agent verbruikt een kleine hoeveelheid CPU- en geheugenbronnen.

Waarschuwing

Het geheugengebruik van de AKS-kostenanalyse-uitbreiding is afhankelijk van het aantal geïmplementeerde containers. U kunt het geheugenverbruik ruwweg schatten met 200 MB + 0,5 MB per container. De huidige geheugenlimiet is ingesteld op 4 GB, die ongeveer 7000 containers per cluster ondersteunt. Deze schattingen kunnen worden gewijzigd.

Notitie

Als u de kostenanalyse inschakelt, wordt er ook een beheerde identiteit aangemaakt met de naam cost-analysis-identity, die leestoegang heeft tot de knooppuntresourcegroep van het cluster en wordt toegewezen aan de knooppuntgroepen in het cluster. Dit wordt gebruikt om de ARM-id's van clusterassets te verzamelen voor rapportage.

Omdat er al een beheerde identiteit is voor de knooppuntgroep zelf, moeten opdrachten op het knooppunt die gebruikmaken van beheerde identiteiten de identiteit opgeven die moet worden gebruikt in plaats van te vertrouwen op de standaardinstelling.

Bijvoorbeeld: az login --identity --resource-id <resource ID of identity>.

Kostenanalyse op uw AKS-cluster uitschakelen

Schakel kostenanalyse uit met behulp van de az aks update opdracht met de --disable-cost-analysis vlag.

az aks update --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --disable-cost-analysis

Resultaten:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Notitie

Als u uw cluster wilt downgraden van de Standard of Premium laag naar de Free laag terwijl kostenanalyse is ingeschakeld, moet u eerst kostenanalyse uitschakelen.

De kostengegevens weergeven

U kunt kostentoewijzingsgegevens bekijken in Azure Portal. Zie AKS-kosten weergeven in Microsoft Cost Management voor meer informatie.

Kostendefinities

In de Kubernetes-naamruimten en weergaven van activa kunt u mogelijk een van de volgende kosten zien:

  • Niet-actieve kosten vertegenwoordigen de kosten van de beschikbare resourcecapaciteit die niet wordt gebruikt door workloads.
  • Servicekosten vertegenwoordigen de kosten die zijn gekoppeld aan de service, zoals SLA voor uptime, Microsoft Defender for Containers, enzovoort.
  • Systeemkosten vertegenwoordigen de kosten van capaciteit die door AKS op elk knooppunt zijn gereserveerd om systeemprocessen uit te voeren die vereist zijn voor het cluster, inclusief de kubelet- en containerruntime. Meer informatie.
  • Niet-toegewezen kosten vertegenwoordigen de kosten van resources die niet kunnen worden toegewezen aan naamruimten.

Notitie

Het kan tot één dag duren voordat gegevens zijn voltooid. Na 24 uur zijn eventuele schommelingen in de kosten voor de vorige dag gestabiliseerd.

Probleemoplossingsproces

Als u problemen ondervindt, zoals de cost-agent pod die een OOMKilled status krijgt of vastloopt in een Pending staat, raadpleegt u Problemen met de invoegtoepassing voor AKS-kostenanalyse oplossen.

Volgende stappen

Zie Inzicht in het gebruik en de kosten van Azure Kubernetes Service (AKS) voor meer informatie over kosten in AKS.