Udostępnij za pośrednictwem


Analiza kosztów usługi Azure Kubernetes Service (AKS)

Z tego artykułu dowiesz się, jak włączyć analizę kosztów w usłudze Azure Kubernetes Service (AKS), aby wyświetlić szczegółowe dane dotyczące kosztów dla zasobów klastra.

Informacje o analizie kosztów

Klastry usługi AKS korzystają z zasobów platformy Azure, takich jak maszyny wirtualne, dyski wirtualne, moduły równoważenia obciążenia i publiczne adresy IP. Te zasoby mogą być używane przez wiele aplikacji. Wzorce zużycia zasobów często różnią się dla każdej aplikacji, więc ich wkład w łączny koszt zasobu klastra może się również różnić. Niektóre aplikacje mogą mieć ślady w wielu klastrach, co może stanowić wyzwanie podczas przypisywania kosztów i zarządzania kosztami.

Po włączeniu analizy kosztów w klastrze usługi AKS można wyświetlić szczegółowe alokacje kosztów w zakresie konstrukcji platformy Kubernetes, takich jak klastry i przestrzenie nazw, a także zasoby obliczeniowe platformy Azure, sieć i magazyn. Dodatek jest oparty na OpenCost, projekcie inkubacyjnym open source Fundacji Cloud Native Computing do zbierania danych o użyciu. Dane użycia są uzgadniane z danymi faktur Azure, aby zapewnić kompleksowy widok kosztów klastra AKS bezpośrednio w widokach Zarządzania Kosztami w portalu Azure.

Aby uzyskać więcej informacji na temat usługi Microsoft Cost Management, zobacz Rozpoczynanie analizowania kosztów na platformie Azure.

Po włączeniu dodatku analizy kosztów i umożliwieniu zbierania danych możesz użyć informacji w artykule Omówienie użycia i kosztów usługi AKS, aby ułatwić zrozumienie danych.

Wymagania wstępne

  • Klaster musi używać warstwy Standard lub warstwy Premium, a nie warstwy Free.
  • Aby wyświetlić informacje dotyczące analizy kosztów, musisz mieć jedną z następujących ról w subskrypcji hostowania klastra: Owner, , ContributorReader, Cost Management Contributorlub Cost Management Reader.
  • Tożsamość zarządzana skonfigurowana na Twoim klastrze.
  • Jeśli korzystasz z interfejsu wiersza polecenia platformy Azure, potrzebujesz zainstalowanej wersji 2.61.0 lub nowszej.
  • Po włączeniu analizy kosztów nie można obniżyć poziomu klastra do warstwy "Free" bez wcześniejszego wyłączenia analizy kosztów.
  • Dostęp do interfejsu API platformy Azure, w tym interfejsu API usługi Azure Resource Manager (ARM). Aby uzyskać listę wymaganych w pełni kwalifikowanych nazw domen (FQDN), zobacz AKS Cost Analysis required FQDN.

Ograniczenia

  • Widoki kosztów platformy Kubernetes są dostępne tylko dla typów ofert platformy Microsoft Azure Umowa Enterprise i Umowa z Klientem Microsoft. Aby uzyskać więcej informacji, zobacz Obsługiwane oferty platformy Microsoft Azure.
  • Obecnie węzły wirtualne nie są obsługiwane.

Włącz analizę kosztów na klastrze AKS

Analizę kosztów można włączyć za pomocą flagi --enable-cost-analysis podczas jednej z następujących operacji:

  • Tworzenie klastra AKS na poziomie Standard lub Premium.
  • Aktualizowanie istniejącego klastra AKS lub warstwy Standard albo Premium.
  • Aktualizacja klastra Free do Standard lub Premium.
  • Aktualizacja klastra Standard do programu Premium.
  • Obniżanie poziomu klastra Premium do poziomu Standard.

Włącz analizę kosztów w nowym klastrze

W nowym klastrze włącz analizę kosztów przy użyciu polecenia az aks create z flagą --enable-cost-analysis. Poniższy przykład tworzy nowy klaster AKS w warstwie Standard z włączoną analizą kosztów.

export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="AKSCostRG$RANDOM_SUFFIX"
export CLUSTER_NAME="AKSCostCluster$RANDOM_SUFFIX"
export LOCATION="WestUS2"
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --location $LOCATION --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

Wyniki:

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

Włączanie analizy kosztów w istniejącym klastrze

Włącz analizę kosztów w istniejącym klastrze używając polecenia az aks update z flagą --enable-cost-analysis. Poniższy przykład aktualizuje istniejący klaster AKS w warstwie Standard, aby umożliwić analizę kosztów.

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

Wyniki:

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

Uwaga

Agent jest wdrażany w klastrze po włączeniu dodatku. Agent zużywa niewielką ilość zasobów procesora CPU i pamięci.

Ostrzeżenie

Użycie pamięci przez dodatek Analizy kosztów usługi AKS jest zależne od liczby wdrożonych kontenerów. Przybliżone zużycie pamięci można uzyskać przy użyciu 200 MB + 0,5 MB na kontener. Bieżący limit pamięci jest ustawiony na 4 GB, który obsługuje około 7000 kontenerów na klaster. Te szacunki mogą ulec zmianie.

Wyłącz analizę kosztów w klastrze AKS

Wyłącz analizę kosztów przy użyciu az aks update polecenia z flagą --disable-cost-analysis .

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

Wyniki:

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

Uwaga

Jeśli chcesz obniżyć poziom klastra z Standard warstwy lub Premium do Free warstwy podczas włączania analizy kosztów, musisz najpierw wyłączyć analizę kosztów.

Wyświetlanie danych kosztów

Dane alokacji kosztów można wyświetlić w witrynie Azure Portal. Aby uzyskać więcej informacji, zobacz Wyświetlanie kosztów usługi AKS w usłudze Microsoft Cost Management.

Definicje kosztów

W widokach przestrzeni nazw i zasobów platformy Kubernetes mogą pojawić się następujące opłaty:

  • Opłaty za bezczynność reprezentują koszt dostępnej pojemności zasobów, która nie jest używana przez żadne obciążenia.
  • Opłaty za usługi reprezentują opłaty skojarzone z usługą, takie jak umowa SLA dotycząca czasu pracy, usługa Microsoft Defender dla kontenerów itp.
  • Opłaty systemowe reprezentują koszt pojemności zarezerwowanej przez AKS na każdym węźle do uruchomienia procesów systemowych wymaganych przez klaster, w tym kubelet i środowisko uruchomieniowe kontenera. Dowiedz się więcej.
  • Nieprzydzielone opłaty reprezentują koszt zasobów, których nie można przydzielić do przestrzeni nazw.

Uwaga

Sfinalizowanie danych może potrwać do jednego dnia . Po 24 godzinach wszelkie wahania kosztów w ciągu poprzedniego dnia zostaną ustabilizowane.

Rozwiązywanie problemów

Jeśli występują problemy, takie jak cost-agent, lub zablokowanie zasobnika w stanie OOMKilled, sprawdź Pending.

Następne kroki

Aby uzyskać więcej informacji na temat kosztów w usłudze AKS, zobacz Omówienie użycia i kosztów usługi Azure Kubernetes Service (AKS).