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
ouPremium
, et non pas le niveauFree
.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é.
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
Accès à l’API Azure, y compris l’API Azure Resource Manager (ARM). Pour obtenir la liste des noms de domaine complets (FQDN) requis, consultez Nom de domaine complet AKS Cost Analysis requis.
Les nœuds virtuels ne sont pas pris en charge pour le moment.
AKS Automatic n’est pas pris en charge pour l’instant.
Si vous utilisez Azure CLI, vous devez avoir installé la version
2.61.0
ou une version ultérieure.
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
ouPremium
.Mettez à jour un cluster AKS qui est déjà au niveau
Standard
ouPremium
.Mettez à niveau un cluster
Free
versStandard
ouPremium
.Mettez à niveau un cluster
Standard
versPremium
.Passez un cluster
Premium
au niveau inférieurStandard
.
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 de mémoire actuelle est définie sur 4 Go qui prend en charge environ 7 000 conteneurs par cluster. Ces estimations peuvent varier plus ou moins en fonction de différents facteurs et sont susceptibles de changer.
Si vous rencontrez des problèmes, par exemple si le pod de module complémentaire obtient OOMKilled
ou se bloque à l’état Pending
, reportez-vous au guide de résolution des Problèmes liés au module complémentaire d’analyse des coûts AKS.
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 du niveau Standard
ou Premium
vers le niveau inférieur Free
alors que l’analyse des coûts est activée, vous devez d’abord désactiver explicitement l’analyse des coûts.
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.
Azure Kubernetes Service