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.

Omówienie analizy kosztów usługi AKS

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 o użyciu są zestawiane z danymi z faktur platformy Azure, aby zapewnić kompleksowy widok kosztów klastra AKS bezpośrednio 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 odczekaniu do 24 godzin na zebranie danych możesz skorzystać z informacji zawartych w artykule Opis użycia i kosztów usługi AKS, aby lepiej zrozumieć swoje dane.

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.
  • Sterownik Azure Disk Container Storage Interface (CSI) włączony w 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ć klastra do warstwy Free bez uprzedniego 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.
  • Dodatek nie jest dostępny w regionach usnateast, usnatwest, usseceast lub ussecwest. Aby uzyskać więcej informacji, zobacz Problemy i rozwiązywanie problemów dotyczących dodatku analizy kosztów dla usługi AKS.
  • Dodatek do analizy kosztów w AKS obsługuje około 7000 kontenerów na klaster, bazując na obecnym limicie pamięci wynoszącym 4 GB, który może zostać zmieniony.

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

Wyniki:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "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 usługi AKS w warstwie Standard, aby włączyć analizę kosztów. Zastąp $RESOURCE_GROUP i $CLUSTER_NAME nazwami grupy zasobów i klastra lub ustaw je jako zmienne środowiskowe.

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

Wyniki:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "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.

Uwaga

Włączenie analizy kosztów powoduje również utworzenie tożsamości zarządzanej o nazwie cost-analysis-identity z dostępem do odczytu do grupy zasobów węzła klastra i przypisanie jej do pul węzłów w klastrze. Służy do zbierania identyfikatorów ARM zasobów klastra do raportowania.

Ponieważ pula węzłów ma już tożsamość zarządzaną, wszystkie polecenia w węźle używające tożsamości zarządzanych muszą określać tożsamość do użycia zamiast polegać na tożsamości zarządzanej puli węzłów.

Na przykład az login --identity --resource-id <resource ID of identity>.

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/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "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.

W portalu Azure przejdź do subskrypcji platformy Azure, w której znajduje się Twój klaster AKS. W obszarze Zarządzanie kosztami wybierz pozycję Analiza kosztów. Na liście Widok wybierz element listy rozwijanej, a następnie wybierz pozycję Klastry Kubernetes.

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:

typ opłaty Opis
Opłaty bezczynności Koszt dostępnej pojemności zasobów, która nie jest wykorzystywana przez żadne obciążenia robocze.
Opłaty za usługi Opłaty związane z usługą, takie jak umowa SLA dotycząca dostępności, Microsoft Defender for Containers itp.
Opłaty systemowe Koszt zasobów zarezerwowanych przez usługę AKS na każdym węźle w celu uruchamiania procesów systemowych wymaganych przez klaster, w tym kubelet oraz środowiska uruchomieniowego kontenerów. Dowiedz się więcej.
Opłaty nieprzydzielone Koszt zasobów, których nie można przydzielić do przestrzeni nazw.

Uwaga

Zazwyczaj system finalizuje i udostępnia dane dotyczące kosztów i użycia w ciągu od 8 do 24 godzin.

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