Condividi tramite


Analisi dei costi del servizio Azure Kubernetes

Un cluster del Servizio Azure Kubernetes (AKS) si basa su risorse di Azure come macchine virtuali, dischi virtuali, servizi di bilanciamento del carico e indirizzi IP pubblici. Diverse applicazioni possono usare queste risorse, che potrebbero essere gestite da team diversi all'interno dell'organizzazione. I modelli di utilizzo delle risorse per tali applicazioni sono spesso variabili, pertanto anche il loro contributo al costo totale delle risorse cluster può variare. Alcune applicazioni possono anche avere footprint in diversi cluster, che possono rappresentare una sfida quando si eseguono l'attribuzione dei costi e la gestione dei costi.

In precedenza, Gestione dei costi di Microsoft (MCM) aggregava il consumo di risorse del cluster sotto il gruppo di risorse del cluster. È possibile usare MCM per analizzare i costi, ma esistono diverse sfide:

  • Non esiste alcuna funzionalità nativa di Azure per visualizzare l'utilizzo delle risorse del cluster a un livello più granulare di un cluster. Non è stata eseguita alcuna suddivisione in categorie discrete, ad esempio calcolo (inclusi core CPU e memoria), archiviazione e rete.

  • Non esiste alcuna funzionalità nativa di Azure per distinguere i tipi di costi, ad esempio tra i costi delle singole applicazioni e i costi condivisi. MCM ha segnalato il costo delle risorse, ma non sono state rilevate informazioni dettagliate sulla quantità di costo delle risorse usata per eseguire singole applicazioni, quanta è stata riservata per i processi di sistema richiesti dal cluster o quali fossero i costi di inattività associati al cluster.

  • Non esiste un meccanismo nativo di Azure per analizzare i costi in più cluster nello stesso ambito della sottoscrizione.

Di conseguenza, è possibile che siano state usate soluzioni di terze parti per raccogliere e analizzare il consumo e i costi delle risorse in base ai livelli di granularità specifici di Kubernetes, ad esempio per spazio dei nomi o pod. Le soluzioni di terze parti, tuttavia, richiedono sforzi per distribuire, ottimizzare e gestire per ogni cluster del servizio Azure Kubernetes. In alcuni casi, è anche necessario pagare per le funzionalità avanzate, aumentando il costo totale di proprietà del cluster.

Per risolvere questo problema, il Servizio Azure Kubernetes è integrato con MCM per offrire un drill-down dettagliato dei costi con ambito di costrutti Kubernetes, ad esempio cluster e spazio dei nomi, oltre alle categorie di calcolo, rete e archiviazione di Azure.

Il componente aggiuntivo per l'analisi dei costi del Servizio Azure Kubernetes si basa su OpenCost, un progetto sandbox open source Cloud Native Computing Foundation per la raccolta dei dati di utilizzo. L'analisi dei costi viene riconciliata con i dati della fattura di Azure. I dati post-elaborati sono visibili direttamente nell'esperienza del portale analisi dei costi MCM.

Prerequisiti e limitazioni

  • Il cluster deve essere di livello Standard o Premium, non livello Free.

  • Per visualizzare le informazioni sull'analisi dei costi, è necessario avere uno dei ruoli seguenti nella sottoscrizione che ospita il cluster: Proprietario, Collaboratore, Lettore, Collaboratore, Collaboratore gestione costi o Lettore gestione costi.

  • Dopo aver abilitato l'analisi dei costi, non è possibile effettuare il downgrade del cluster al livello Free senza prima disabilitare l'analisi dei costi.

  • Il cluster deve essere distribuito con un ID carico di lavoro Microsoft Entra configurato.

  • Le visualizzazioni dei costi di Kubernetes sono disponibili solo per i tipi di offerta di Microsoft Azure seguenti. Per altre informazioni sui tipi di offerta, vedere Offerte di Microsoft Azure supportate.

    • Enterprise Agreement
    • Contratto del cliente Microsoft
  • Accesso all'API di Azure, inclusa l'API di Azure Resource Manager (ARM). Per un elenco dei nomi di dominio completi (FQDN) necessari, vedere FQDN necessario per l'analisi dei costi del servizio Azure Kubernetes.

  • I nodi virtuali non sono attualmente supportati.

  • Il Servizio Azure Kubernetes automatico non è attualmente supportato.

  • Se si usa l'interfaccia della riga di comando di Azure, è necessario aver installato la versione 2.61.0 o una versione successiva.

Abilitare l'analisi dei costi nel cluster AKS

È possibile abilitare l'analisi dei costi con il flag --enable-cost-analysis durante una delle operazioni seguenti:

  • Creare un cluster del Servizio Azure Kubernetes di livello Standard o Premium.

  • Aggiornare un cluster del servizio Azure Kubernetes già incluso nel livello Standard o Premium.

  • Aggiornare un cluster Free a Standard o Premium.

  • Aggiornare un cluster Standard a Premium.

  • Effettuare il downgrade di un cluster Premium a livello Standard.

L'esempio seguente crea un nuovo cluster del Servizio Azure Kubernetes nel livello Standard con l'analisi dei costi abilitata:

az aks create --resource-group <resource-group> --name <cluster-name> --location <location> --enable-managed-identity --generate-ssh-keys --tier standard --enable-cost-analysis

L'esempio seguente aggiorna un cluster del Servizio Azure Kubernetes esistente nel livello Standard per abilitare l'analisi dei costi:

az aks update --resource-group <resource-group> --name <cluster-name> --enable-cost-analysis

Avviso

L'utilizzo della memoria per il componente aggiuntivo di analisi dei costi del Servizio Azure Kubernetes dipende dal numero di contenitori distribuiti. Il consumo di memoria può essere approssimativamente approssimativo di 200 MB + 0,5 MB per contenitore. Il limite di memoria corrente è impostato su 4 GB, che supporterà circa 7000 contenitori per cluster. Queste stime potrebbero essere più o meno a seconda di vari fattori e sono soggette a modifiche.

Se si verificano problemi come il pod del componente aggiuntivo che mostra OOMKilledo si blocca in uno statoPending, vedere la guida alla risoluzione dei problemi relativi ai componenti aggiuntivi di analisi dei costi del servizio Azure Kubernetes.

Disabilitare l'analisi dei costi

È possibile disabilitare l'analisi dei costi in qualsiasi momento usando az aks update.

az aks update --name myAKSCluster --resource-group myResourceGroup --disable-cost-analysis

Nota

Se si prevede di effettuare il downgrade del cluster dai livelli Standard o Premium al livello Free mentre è abilitata l'analisi dei costi, è prima necessario disabilitare in modo esplicito l'analisi dei costi.

Visualizzare i dati sui costi

È possibile visualizzare i dati di allocazione dei costi nel portale di Azure. Per altre informazioni su come esplorare la visualizzazione dell'interfaccia utente di analisi dei costi, vedere la documentazione di Gestione dei costi Microsoft.

Definizioni dei costi

Nelle viste Spazi dei nomi e Asset Kubernetes verranno visualizzati gli addebiti seguenti:

  • Addebiti per risorse inattive: rappresenta il costo della capacità di risorse disponibile che non è stata usata da alcun carico di lavoro.
  • Addebiti per i servizi: rappresenta gli addebiti associati al servizio, ad esempio il contratto di servizio tempo di attività, Microsoft Defender per contenitori e così via.
  • Addebiti di sistema: rappresenta il costo della capacità riservata dal Servizio Azure Kubernetes in ogni nodo per eseguire i processi di sistema richiesti dal cluster, inclusi kubelet e il runtime del contenitore. Altre informazioni.
  • Addebiti non allocati: rappresenta il costo delle risorse che non possono essere allocate agli spazi dei nomi.

Nota

La finalizzazione dei dati potrebbe richiedere fino a un giorno. Dopo 24 ore, eventuali fluttuazioni dei costi per il giorno precedente saranno stabilizzate.

Risoluzione dei problemi

Vedere la guida seguente per risolvere i problemi relativi ai componenti aggiuntivi di analisi dei costi del servizio Azure Kubernetes.

Altre informazioni

La visibilità è un elemento della gestione dei costi. Per altre procedure consigliate su come ottenere il controllo sui costi di Kubernetes, vedere Ottimizzare i costi nel Servizio Azure Kubernetes (AKS).