Analyse des coûts d’Azure Kubernetes Service

Un cluster Azure Kubernetes Service (AKS) dépend de ressources Azure telles que des machines virtuelles, des disques virtuels, des équilibreurs de charge et des adresses IP publiques. De nombreuses applications peuvent utiliser ces ressources qui peuvent être gérées par des équipes différentes au sein de votre organisation. Les modèles de consommation de ressources ou ces applications sont souvent variables. Ainsi, leur contribution au coût total des ressources du cluster peut également varier. Certaines applications peuvent également avoir des empreintes à travers plusieurs clusters, ce qui peut poser un défi lors de l’attribution des coûts et de la gestion des coûts.

Auparavant, Microsoft Cost Management (MCM) agrégeait la consommation des ressources de cluster sous le groupe de ressources de cluster. Vous pouviez utiliser MCM pour analyser les coûts, mais il existait plusieurs défis :

  • Il n’y avait aucune fonctionnalité native Azure pour afficher l’utilisation de la ressource de cluster à un niveau plus granulaire qu’un cluster. Il n’y avait pas de décomposition en catégories discrètes telles que le calcul (y compris les cœurs de processeur et la mémoire), le stockage et la mise en réseau.

  • Il n’existait aucune fonctionnalité native d’Azure pour distinguer les types de coûts, par exemple les coûts d’application individuels des coûts partagés. MCM a signalé le coût des ressources, mais sans aperçu sur la quantité de coûts des ressources utilisée pour exécuter des applications individuelles, la quantité réservée aux processus système requis par le cluster ou quels ont été les coûts d’inactivité associés au cluster.

  • Il n’y avait aucun mécanisme natif Azure pour analyser les coûts entre plusieurs clusters dans la même étendue d’abonnement.

Par conséquent, vous avez peut-être utilisé des solutions tierces pour collecter et analyser la consommation et les coûts des ressources par des niveaux de granularité spécifiques à Kubernetes, tels que par espace de noms ou par pod. Toutefois, les solutions tierces nécessitent un effort de déploiement, d’ajustement et de maintenance pour chaque cluster AKS. Dans certains cas, vous devez même payer pour des fonctionnalités avancées, augmentant le coût total de possession du cluster.

Pour relever ce défi, AKS a intégré MCM pour offrir une exploration détaillée des coûts étendue aux constructions Kubernetes, telles que le cluster et l’espace de noms, en plus des catégories Azure Compute, Réseau et Stockage Azure.

Le module complémentaire d’analyse des coûts AKS est basé sur OpenCost, un projet open source en bac à sable Cloud Native Computing Foundation pour la collecte de données d’utilisation. L’analyse des coûts est rapprochée aux données de votre facture Azure. Les données post-traitées sont visibles directement dans l’expérience du portail d’analyse des coûts MCM.

Conditions préalables et limitations

  • Votre cluster doit être le niveau Standard ou Premium, et non pas le niveau Free.

  • Pour afficher les informations d’analyse des coûts, vous devez disposer de l’un des rôles suivants sur l’abonnement hébergeant le cluster : Propriétaire, Contributeur, Lecteur, Contributeur, Contributeur de gestion des coûts ou Lecteur de gestion des coûts.

  • Une fois l’analyse des coûts activée, vous ne pouvez pas passer votre cluster au niveau antérieur Free sans désactiver au préalable l’analyse des coûts.

  • Votre cluster doit être déployé avec un ID de charge de travail Microsoft Entra configuré.

  • Si vous utilisez Azure CLI, vous devez avoir installé la version 2.44.0 ou une version ultérieure, et la aks-previewversion de l’extension Azure CLI0.5.155 ou ultérieure.

  • Les vues de coût Kubernetes sont disponibles uniquement pour les types d’offres Microsoft Azure suivants. Pour plus d’informations sur les types d’offres, consultez l’article Offres Microsoft Azure prises en charge.

    • Contrat Entreprise
    • Contrat client Microsoft
  • Les nœuds virtuels ne sont pas pris en charge pour le moment.

Installer ou mettre à jour l’extension aks-preview Azure CLI

Installez l’extension aks-preview Azure CLI à l’aide de la commande az extension add.

az extension add --name aks-preview

Si vous devez mettre à jour la version de l’extension, vous pouvez le faire à l’aide de la commande az extension update.

az extension update --name aks-preview

Activer l’analyse des coûts sur votre cluster AKS

Vous pouvez activer l’analyse des coûts avec l’indicateur --enable-cost-analysis pendant l’une des opérations suivantes :

  • Créez un cluster AKS de niveau Standard ou Premium.

  • Mettez à jour un cluster AKS qui est déjà au niveau Standard ou Premium.

  • Mettez à niveau un cluster Free vers Standard ou Premium.

  • Mettez à niveau un cluster Standard vers Premium.

  • Passez un cluster Premium au niveau inférieur Standard.

La commande suivante crée par exemple un cluster AKS dans le niveau Standard avec l’analyse des coûts activée :

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

L’exemple suivant met à jour un cluster AKS existant dans le niveau Standard afin d’activer l’analyse des coûts :

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

Avertissement

L’utilisation de la mémoire du module complémentaire d’analyse des coûts AKS dépend du nombre de conteneurs déployés. La consommation de la mémoire peut être approximativement de 200 Mo + 0,5 Mo par conteneur. La limite actuelle de la mémoire est définie sur 4 Go, ce qui permet de prendre en charge environ 7 000 conteneurs par cluster,. Par contre, elle peut être plus ou moins importante en fonction de différents facteurs. Ces estimations sont susceptibles d’être modifiées.

Désactiver l’analyse des coûts

Vous pouvez désactiver l’analyse des coûts à tout moment à l’aide de az aks update.

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

Remarque

Si vous envisagez de passer votre cluster au niveau Standard ou Premium vers le niveau inférieur Free pendant que l’analyse des coûts est activée, vous devez d’abord désactiver explicitement l’analyse des coûts comme indiqué ici.

Afficher les données de coût

Vous pouvez afficher les alertes d’allocation des coûts dans le Portail Microsoft Azure. Pour en savoir plus sur la navigation dans la vue de l’interface utilisateur d’analyse des coûts, consultez la documentation de Cost Management.

Définitions des coûts

Dans les vues des espaces de noms et des ressources Kubernetes, les frais suivants s’affichent :

  • Frais inactifs : représente le coût de la capacité des ressources disponible qui n’a pas été utilisée par les charges de travail.
  • Frais de service : représente les frais associés au service, comme le contrat SLA en temps d’activité, Microsoft Defender pour les conteneurs, etc.
  • Frais système : représente le coût de la capacité réservée par AKS sur chaque nœud pour exécuter les processus système requis par le cluster, notamment le kubelet et le runtime du conteneur. Plus d’informations
  • Frais non alloués : représente le coût des ressources qui n’ont pas pu être allouées aux espaces de noms.

Remarque

La finalisation des données peut prendre jusqu’à un jour. Après 24 heures, toutes les fluctuations de coûts du jour précédent sont stabilisées.

Dépannage

Consultez le guide suivant pour résoudre les problèmes de module complémentaire d’analyse des coûts AKS.

En savoir plus

La visibilité est un élément de la gestion des coûts. Consultez Optimiser les coûts dans Azure Kubernetes Service (AKS) pour obtenir d’autres meilleures pratiques sur la façon de contrôler vos coûts Kubernetes.