Afficher la répartition détaillée des coûts du cluster


Cette page explique comment afficher la répartition des coûts de votre cluster Google Kubernetes Engine (GKE) dans l'exportation BigQuery de Cloud Billing en utilisant l'attribution des coûts GKE.

Vous pouvez utiliser ces informations pour répartir les coûts d'un cluster entre ses utilisateurs.

Augmentation potentielle du volume de données

L'activation de l'attribution des coûts GKE peut augmenter vos coûts de stockage et d'interrogation dans BigQuery. L'augmentation exacte dépend du nombre de combinaisons d'étiquettes et d'espaces de noms distinctes que vous utilisez dans les pods et les clusters.

L'activation de l'attribution des coûts GKE ne modifie pas le coût total de votre utilisation de GKE. La somme des lignes de coût de votre exportation est identique, et les requêtes et rapports existants que vous avez créés sur l'exportation de la facturation renvoient les mêmes valeurs.

Attribution des coûts GKE et mesure de l'utilisation des clusters

L'attribution des coûts GKE présente plusieurs différences avec la mesure de l'utilisation du cluster :

  • L'attribution des coûts GKE constitue une alternative à la mesure de l'utilisation des clusters pour obtenir des informations sur les clusters.
  • L'attribution des coûts GKE calcule les coûts des clusters dans votre compte de facturation Cloud au lieu d'agréger les données dans un modèle Looker Studio.
  • L'attribution des coûts GKE vous permet d'afficher les données de coût des clusters dans la section Cloud Billing de la console Google Cloud et dans l'exportation détaillée de Cloud Billing.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.

Limites et restrictions

  • Vous ne pouvez afficher les données d'attribution des coûts GKE que dans l'exportation des données de coûts d'utilisation détaillées de Cloud Billing dans BigQuery.
  • Vous devez disposer de la version 392.0.0 ou ultérieure de la CLI Google Cloud.
  • Si vous activez l'attribution des coûts GKE, votre exportation de la facturation commence à inclure des lignes supplémentaires pour vos ressources GKE à compter de cette date. L'exportation de la facturation ne remplit pas les données.
  • Si vous désactivez l'attribution des coûts GKE, votre exportation de facturation arrête d'inclure des lignes supplémentaires, mais ne modifie ni ne supprime les lignes précédentes générées lors de l'activation de la fonctionnalité.
  • Les données d'attribution des coûts de GKE sont basées sur les demandes de ressources, et non sur les ressources consommées. Pour en savoir plus sur les différences entre les demandes de ressources, les limites de ressources et la consommation de ressources, consultez la section Bonnes pratiques Kubernetes : requêtes et limites de ressources.
  • L'attribution des coûts GKE est compatible avec les types de codes SKU de ressources suivants :
    • SKU du processeur virtuel de l'instance de VM Compute Engine
    • SKU de RAM de l'instance de VM Compute Engine
    • Codes SKU GPU des instances de VM Compute Engine
    • Codes SKU de capacité de disque persistant Compute Engine
  • Si un pod comporte plus de 50 étiquettes Kubernetes, aucune de ces étiquettes ne sera disponible dans la section Cloud Billing de la console Google Cloud ou dans l'exportation détaillée de Cloud Billing.
  • Après avoir activé la répartition des coûts GKE, l'affichage des données dans Cloud Billing peut prendre jusqu'à trois jours.
  • L'attribution des coûts GKE inclut les données des disques persistants, avec les exceptions suivantes :
    • Compatible uniquement avec les ressources PersistentVolume provisionnées par le pilote CSI de disque persistant Compute Engine ou avec la classe de stockage gce-pd avec le mode d'accès ReadWriteOnce ou ReadWriteOncePod.
    • Les disques persistants avec un temps de disponibilité inférieur à 30 minutes peuvent ne pas être suivis. Les disques persistants avec une disponibilité d'au moins 30 minutes sont toujours suivis.

Afficher les coûts de cluster GKE

Lorsque vous activez la répartition des coûts GKE, le nom de cluster et l'espace de noms de vos charges de travail GKE apparaissent dans le champ labels de l'exportation de facturation vers BigQuery :

Métadonnées Description Nom du cluster Namespace
Clé d'étiquette de ressource (labels.key) Les libellés Kubernetes ont le format suivant : k8s-label/${k8s-label-key}, où ${k8s-label-key} est la clé du libellé Kubernetes du pod. Le libellé de facturation k8s-label/${k8s-label-key} a la même valeur que le libellé de pod Kubernetes correspondant. goog-k8s-cluster-name k8s-namespace
Valeur du libellé de ressource (labels.value) Si une clé de libellé Kubernetes entre en conflit avec une clé de libellé de VM, la valeur du libellé Kubernetes remplace la valeur du libellé de VM. Les libellés de ressources de cluster et de pool de nœuds sont appliqués aux ressources en utilisant la priorité suivante, de la plus élevée à la plus basse :
  • Ressource individuelle, telle que l'instance ou le stockage
  • Pool de nœuds
  • Cluster
[cluster-name] [namespace]

Pour en savoir plus, consultez la section Schéma des données détaillées de coût d'utilisation.

De plus, les espaces de noms suivants sont utilisés pour effectuer le suivi des frais généraux et des ressources non allouées :

  • kube:system-overhead : les ressources sont réservées pour les coûts du système.
  • kube:unallocated : les ressources ne sont pas sollicitées par les charges de travail, ni en cas de surcharge du système.

Si GKE ne peut pas déterminer l'attribution des coûts d'une ressource, l'exportation comprend l'une des valeurs suivantes :

  • goog-k8s-unknown: Cloud Billing n'a pas pu traiter le code SKU. Cela peut se produire lorsqu'une nouvelle instance Compute Engine est en cours de provisionnement.
  • goog-k8s-unsupported-sku: l'attribution des coûts GKE n'est pas compatible avec ce code SKU. Traiter de la même manière que <blank>/NULL. Rien ne garantit qu'un code SKU soit toujours étiqueté avec cette valeur.
  • <blank>/NULL: l'attribution des coûts GKE ne suit pas cette ressource. Cela peut se produire lorsque l'attribution des coûts GKE n'est pas activée ou que la ressource n'appartient pas à un cluster géré par GKE.

Les coûts des disques persistants sont suivis lorsque les PersistentVolumeClaims de sauvegarde du disque persistant sont revendiquées par les pods. Les coûts du disque persistant héritent de toutes les métadonnées, telles que les étiquettes et les espaces de noms du pod, jusqu'à ce que leurs PersistentVolumeClaims soient supprimées. Pour les PersistentVolumeClaims supprimées mais qui conservent des PersistentVolumes conformément à la règle de récupération, les coûts des disques persistants sont suivis comme non alloués.

Les étiquettes appliquées directement aux PersistentVolumeClaims n'apparaissent pas dans la section Cloud Billing de la console Google Cloud ni dans l'exportation détaillée de Cloud Billing.

Activer l'attribution des coûts GKE

Vous pouvez activer la répartition des coûts GKE sur un cluster nouveau ou existant à l'aide de gcloud CLI ou de la console Google Cloud.

Créer un cluster

gcloud

Créez un cluster à l'aide de l'option --enable-cost-allocation :

gcloud container clusters create CLUSTER_NAME \
    --enable-cost-allocation \
    --region=COMPUTE_REGION

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du nouveau cluster
  • COMPUTE_REGION : région Compute Engine du cluster. Pour les clusters zonaux, utilisez --zone=COMPUTE_ZONE.

Console

Pour activer l'attribution des coûts GKE lorsque vous créez un cluster, procédez comme suit:

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Cliquez sur Créer.

  3. Configurez votre cluster.

  4. Dans le volet de navigation, sous Cluster, cliquez sur Fonctionnalités.

  5. Dans la section Autre, cochez la case Activer la répartition des coûts.

  6. Configurez le cluster selon vos besoins, puis cliquez sur Créer.

Mettre à jour un cluster

gcloud

Mettez à jour un cluster à l'aide de l'option --enable-cost-allocation :

gcloud container clusters update CLUSTER_NAME \
    --enable-cost-allocation

Remplacez CLUSTER_NAME par le nom du cluster.

Console

Procédez comme suit pour activer l'attribution des coûts GKE sur un cluster existant :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console. Accéder à Google Kubernetes Engine
  2. Cliquez sur le nom du cluster que vous souhaitez modifier.
  3. Sur la page Clusters, dans la section Fonctionnalités, cliquez sur à côté de Allocation des coûts.
  4. Dans la boîte de dialogue Modifier la répartition des coûts, cochez la case Activer la répartition des coûts.
  5. Cliquez sur Enregistrer les modifications.

Vérifier que l'attribution des coûts GKE est activée

gcloud

Décrivez le cluster :

gcloud container clusters describe CLUSTER_NAME

Le résultat ressemble à ce qui suit :

...
costManagementConfig:
  enabled: true
...

Dans ce résultat, costManagementConfig indique que l'attribution des coûts GKE est activée.

Console

Procédez comme suit pour vérifier si l'attribution des coûts GKE est activée sur un cluster existant :

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console. Accéder à Google Kubernetes Engine
  2. Cliquez sur le nom du cluster que vous souhaitez modifier.
  3. Sur la page Clusters, dans la section Fonctionnalités, à côté de Allocation des coûts, il sera indiqué si l'allocation des coûts de GKE est activée.

Filtrer les données de coût GKE

Les exemples de requêtes suivants vous montrent comment filtrer et regrouper vos coûts GKE pour les types de ressources compatibles par nom de cluster, espace de noms et libellé.

Remplacez BILLING_DATASET_TABLE par le nom de l'ensemble de données que vous avez créé dans BigQuery.

Le nom de la table est semblable à gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud, désactivez l'attribution des coûts GKE pour le cluster :

gcloud container clusters update CLUSTER_NAME \
    --no-enable-cost-allocation

Vous pouvez également supprimer le cluster que vous avez créé.

Étapes suivantes