Analýza nákladů služby Azure Kubernetes Service (AKS)

V tomto článku se naučíte, jak povolit analýzu nákladů na službě Azure Kubernetes Service (AKS) pro zobrazení podrobných údajů o nákladech na prostředky clusteru.

Přehled analýzy nákladů AKS

AKS klastrů spoléhají na prostředky Azure, jako jsou virtuální počítače (VMs), virtuální disky, load balancery a veřejné IP adresy. Více aplikací může tyto zdroje využívat. Vzorce spotřeby prostředků se často pro každou aplikaci liší, takže se jejich příspěvek k celkovému nákladům na prostředky clusteru může lišit. Některé aplikace mohou mít stopy napříč několika klustry, což může představovat výzvu při přiřazování nákladů a řízení nákladů.

Když povolíte analýzu nákladů na vašem AKS clusteru, můžete zobrazit podrobnou alokaci nákladů souvisejících s Kubernetes konstrukty, jako jsou clustery a namespaces, a také zdroji Azure výpočetní techniky, sítí a úložiště. Doplněk je postaven na OpenCost, což je projekt z inkubátoru Cloud Native Computing Foundation pro sběr dat o užívání. Data o využití jsou odsouhlasována s daty faktury Azure a poskytují komplexní přehled o nákladech na cluster AKS přímo na portálu Azure.

Pro více informací o Microsoft Cost Management si přečtěte Začněte analyzovat náklady v Azure.

Po povolení doplňku pro analýzu nákladů a po vyčkání až 24 hodin, než se data shromáždí, můžete použít informace v článku Principy využití a nákladů AKS, které vám pomohou lépe porozumět datům.

Požadavky

  • Váš cluster musí používat úroveň Standard nebo Premium, nikoli úroveň Free.
  • Pokud chcete zobrazit informace o analýze nákladů, musíte mít jednu z následujících rolí v předplatném, které je hostitelem clusteru: Owner, Contributor, Reader, Cost Management Contributornebo Cost Management Reader.
  • Spravovaná identita nakonfigurovaná v clusteru
  • Ovladač rozhraní csI (Disk Container Storage Interface) Azure povolený ve vašem clusteru.
  • Pokud používáte Azure CLI, potřebujete verzi 2.61.0 nebo novější.
  • Jakmile povolíte analýzu nákladů, nemůžete downgradovat cluster na Free úroveň, aniž byste nejprve zakázali analýzu nákladů.
  • Přístup k rozhraní Azure API, včetně rozhraní API Azure Resource Manageru (ARM). Pro seznam plně kvalifikovaných doménových jmen (FQDN) potřebných viz AKS Cost Analysis required FQDN.

Omezení

  • Zobrazení nákladů Kubernetes jsou k dispozici pouze pro typy nabídek Microsoft Azure: Enterprise Agreement a Smlouva se zákazníkem Microsoftu. Další informace najdete v tématu Podporované nabídky Microsoft Azure.
  • V současné době nejsou virtuální uzly podporovány.
  • Doplněk není k dispozici v oblastech usnateast, usnatwest, usseceast nebo ussecwest. Další informace najdete v tématu O problémech s doplňkem analýzy nákladů AKS a řešení potíží.
  • Doplněk Analýza nákladů AKS podporuje přibližně 7 000 kontejnerů na cluster, na základě aktuálního limitu paměti 4 GB, což se může změnit.

Umožněte analýzu nákladů ve vašem AKS clusteru

Během jedné z následujících operací můžete povolit analýzu nákladů s příznakem --enable-cost-analysis.

  • Vytváření cloudu AKS tier Standard nebo Premium.
  • Aktualizace stávajícího Standard nebo Premium vrstvy AKS clusteru.
  • Modernizace clusteru Free na Standard nebo Premium.
  • Modernizace clusteru Standard na Premium.
  • Downgradování clusteru Premium na Standard vrstvu

Povolte analýzu nákladů na novém clusteru

Povolte analýzu nákladů na novém clusteru pomocí příkazu az aks create s příznakem --enable-cost-analysis. Následující příklad vytvoří nový AKS cluster v úrovni Standard s umožněnou analýzou nákladů:

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

Výsledky:

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

Povolte analýzu nákladů na existujícím clusteru

Povolte analýzu nákladů na existujícím clusteru pomocí příkazu az aks update a příznaku --enable-cost-analysis. Následující příklad aktualizuje existující cluster AKS v úrovni Standard, aby povolil analýzu nákladů. Nahraďte $RESOURCE_GROUP názvem vaší skupiny prostředků a $CLUSTER_NAME názvem vašeho clusteru nebo je nastavte jako proměnné prostředí.

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

Výsledky:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Poznámka

Agent se nasadí do clusteru, když povolíte doplněk. Agent spotřebovává malé množství prostředků CPU a paměti.

Výstraha

Analýza nákladů AKS, rozšíření pro spotřebu paměti, závisí na počtu nasazených kontejnerů. Přibližnou spotřebu paměti můžete odhadnout pomocí 200 MB + 0,5 MB na kontejner. Aktuální limit paměti je nastavený na 4 GB, který podporuje přibližně 7 000 kontejnerů na cluster. Tyto odhady se můžou změnit.

Poznámka

Povolením analýzy nákladů se také vytvoří spravovaná identita nazvaná cost-analysis-identity s přístupem pro čtení ke skupině prostředků uzlu clusteru a přiřadí ji fondům uzlů v clusteru. Používá se ke shromažďování identifikátorů ARM prostředků clusteru pro vytváření zpráv.

Vzhledem k tomu, že fond uzlů už má spravovanou identitu, musí všechny příkazy na uzlu, který používá spravované identity, určit identitu, která se má použít , a nespoléhat se na spravovanou identitu fondu uzlů.

Například: az login --identity --resource-id <resource ID of identity>.

Zakázat analýzu nákladů na vašem AKS clusteru

Pomocí příkazu s příznakem az aks update--disable-cost-analysis zakažte analýzu nákladů.

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

Výsledky:

{
    "id": "/subscriptions/xxxxx/resourceGroups/AKSCostRGxxxx/providers/Microsoft.ContainerService/managedClusters/AKSCostClusterxxxx",
    "name": "AKSCostClusterxxxx",
    "properties": {
        "provisioningState": "Succeeded"
    }
}

Poznámka

Chcete-li snížit úroveň vašeho clusteru z úrovně Standard nebo Premium na úroveň Free při zapnuté analýze nákladů, musíte nejprve analýzu nákladů vypnout.

Zobrazit údaje o nákladech

Můžete si prohlédnout údaje o rozdělení nákladů v portálu Azure.

Na portálu Azure přejděte do Azure předplatného, které hostuje váš cluster AKS. V části Cost Management vyberte Analýzu nákladů. V seznamu Zobrazení vyberte položku v rozevíracím seznamu a pak vyberte clustery Kubernetes.

Pro více informací si prohlédněte Zobrazení nákladů AKS v Microsoft Cost Management.

Definice nákladů

V zobrazeních jmenných prostorů a prostředků Kubernetes můžete vidět některé z následujících poplatků:

Typ poplatku Description
Nečinné poplatky Náklady na dostupnou kapacitu prostředků, kterou nevyužívají žádné úlohy.
Poplatky za služby Poplatky spojené se službou, jako je smlouva SLA o provozu, Microsoft Defender pro kontejnery atd.
Poplatky za systém Náklady na kapacitu, kterou AKS rezervuje na každém uzlu pro spouštění systémových procesů, které cluster vyžaduje, včetně kubeletu a kontejnerového modulu runtime. Další informace.
Nepřiřazené poplatky Náklady na prostředky, které nebylo možné přiřadit oborům názvů.

Poznámka

Systém obvykle dokončuje a zpřístupňuje data o nákladech a využití do 8 až 24 hodin.

Řešení problémů

Pokud se setkáváte s problémy, jako je například cost-agent pod se OOMKilled nebo uvíznutí ve stavu Pending, podívejte se na Řešení problémů s doplňkem analýzy nákladů AKS.

Další kroky

Pro více informací o nákladech v AKS si přečtěte Porozumění používání a nákladům služby Azure Kubernetes Service (AKS).