Cette rubrique explique comment activer et utiliser la fonctionnalité cost insights pour les registered clusters. Cette fonctionnalité vous aide à analyser la répartition des coûts, à surveiller l'utilisation des ressources et à optimiser les dépenses de votre cluster.
Prérequis
La version Kubernetes de votre cluster doit être 1.18.8 ou ultérieure. Si votre cluster exécute une version antérieure, mettez-le à niveau. Pour plus d'informations, consultez la section Mise à niveau manuelle d'un cluster.
Le service Managed Service for Prometheus est activé. Pour plus d'informations, consultez la section Activation de Managed Service for Prometheus.
Activation de Cost Insights
Compte unique
Étape 1 : Configuration des autorisations RAM
onectl
Installez et configurez onectl sur votre machine locale. Pour plus d'informations, consultez la section Gestion des clusters enregistrés à l'aide d'onectl.
-
Exécutez la commande suivante pour accorder les autorisations RAM au composant ack-cost-exporter :
onectl ram-user grant --addon ack-cost-exporterRésultat attendu :
Ram policy ack-one-registered-cluster-policy-ack-cost-exporter granted to ram user ack-one-user-ce313528c3 successfully.
Console
-
Création d'une stratégie personnalisée. Le composant ack-cost-exporter nécessite les autorisations définies dans la stratégie suivante :
Association de la stratégie personnalisée à l'utilisateur RAM.
-
Création d'une AccessKey pour l'utilisateur RAM.
AvertissementPour renforcer la sécurité, configurez une politique de contrôle d'accès réseau pour l'AccessKey afin de restreindre l'accès aux environnements réseau approuvés. Pour plus d'informations, consultez la section Politiques de restriction d'accès réseau basées sur l'AccessKey.
-
Utilisez la paire AccessKey pour créer un Secret nommé alibaba-addon-secret dans le cluster enregistré. Exécutez la commande suivante pour créer le Secret pour le composant ack-cost-exporter.
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'
Étape 2 : Installation de ack-cost-exporter
onectl
Exécutez la commande suivante pour installer le composant ack-cost-exporter :
onectl addon install ack-cost-exporter
Résultat attendu :
Addon ack-cost-exporter, version **** installed.
Console
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
-
Sur la page Clusters, cliquez sur le nom du cluster cible, puis sélectionnez .
Si une version d'ack-cost-exporter existe déjà sur la page Helm, supprimez-la, puis suivez les étapes suivantes pour la réinstaller.
Dans le volet de navigation de gauche de la page de gestion du cluster, sélectionnez .
Sur la page Add-ons, cliquez sur l'onglet Logs and Monitoring, recherchez le module complémentaire ack-cost-exporter, puis cliquez sur Install dans le coin inférieur droit. Ensuite, cliquez sur OK.
Multi-comptes
Pour gérer un cluster ACK du compte B à partir d'un registered cluster du compte A, vous devez accorder des autorisations dans le compte B afin que la fonctionnalité cost insights puisse accéder aux données de bill de ce compte.
Étape 1 : Configuration des autorisations pour le compte B
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur .
-
Accordez les autorisations nécessaires pour accéder aux données de facturation du cluster ACK.
-
Clusters gérés par ACK
Le système crée automatiquement le rôle RAM AliyunCSManagedCostRole. Prometheus assume ce rôle pour accéder à vos données de facturation.
Vous pouvez également procéder à l'autorisation depuis la page Autorisation rapide RAM.
-
Clusters dédiés ACK
Ajoutez les autorisations de facturation à la stratégie du rôle worker :
RemarqueLe cluster ACK du compte B ne nécessite pas Managed Service for Prometheus. Si ce service est déjà activé sur le cluster, désinstallez d'abord le composant ack-arms-prometheus. Pour plus d'informations, consultez la section Gestion des modules complémentaires.
-
Étape 2 : Installation du composant dans le compte A
Dans le compte A où réside le cluster enregistré, installez Managed Service for Prometheus. Pour plus d'informations, consultez la section Connexion d'un cluster enregistré à Managed Service for Prometheus.
-
Dans le compte A où réside le cluster enregistré, configurez le paramètre
AckRegisteredClusterIdpour le composant ack-cost-exporter. Définissez ce paramètre sur l'IDclusterIddu cluster ACK du compte B.Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
-
Sur la page Clusters, cliquez sur le nom du cluster cible, puis sélectionnez .
Si une version d'ack-cost-exporter existe déjà sur la page Helm, supprimez-la, puis suivez les étapes suivantes pour la réinstaller.
Dans le volet de navigation de gauche de la page de gestion du cluster, sélectionnez .
Sur la page Add-ons, cliquez sur l'onglet Logs and Monitoring, recherchez le module complémentaire ack-cost-exporter, puis cliquez sur Install dans le coin inférieur droit.
Sur la page Install ack-cost-exporter, définissez registeredAckClusterId sur l'ID du cluster du compte B, puis cliquez sur OK.
Remarques d'utilisation
Les données de facturation s'affichent à 08 h 00 (UTC+8) le lendemain de l'activation de la fonctionnalité Cost Insights. Pour modifier la plage de temps d'un tableau de bord, cliquez sur la liste déroulante située dans le coin supérieur droit du tableau de bord.
Aperçu des coûts du cluster

Métrique | Numéro | Description |
Modèle d'allocation des coûts | (1) | Affiche le modèle d'allocation des coûts actif. Le modèle CPU est sélectionné par défaut. |
Coût de la veille et coûts cumulés | (2) | Indique le coût de la veille, le ratio jour sur jour, le coût cumulé de la semaine en cours et le coût cumulé du mois en cours — tous basés sur les montants facturés. Les coûts hebdomadaires et mensuels sont calculés par période calendaire ; ainsi, le coût hebdomadaire revient à zéro le lundi et le coût mensuel revient à zéro le premier jour de chaque mois. Les factures sont générées un jour après la date de la transaction. Un ratio jour sur jour vert signifie que les coûts ont diminué ; rouge signifie que les coûts ont augmenté. |
Graphiques de tendance des coûts et de la capacité | (3) | La courbe jaune représente le coût du cluster et la courbe bleue représente la capacité réelle du cluster. Lorsque les deux courbes divergent, le coût moyen par cœur CPU a changé — vérifiez si des ressources à prix plus élevé sont consommées. |
Coûts estimés et alloués par namespace | (4) et (5) | La section (4) affiche le coût estimé en temps réel de chaque namespace, calculé comme la somme de tous les coûts des pods. La section (5) affiche le coût alloué par namespace — le coût total du cluster multiplié par le ratio de coût de chaque namespace. Remarque Les namespaces sans requêtes de ressources CPU sont exclus des calculs de coûts. La formule de coût du namespace est : Σ (Requête de ressources du pod / Capacité du nœud) × Prix unitaire du nœud. Cette formule peut différer du montant de la facture lorsque des remises, des bons ou une facturation par abonnement s'appliquent. |
Analyse des coûts pour les nœuds IDC sur site
La fonctionnalité cost insights peut analyser les coûts des on-premises IDC nodes dans un cluster enregistré et des applications déployées sur ces nœuds. Par défaut, cost insights calcule ces coûts à un prix unitaire de 0,2 USD par cœur*heure. Vous pouvez configurer un prix unitaire personnalisé pour vos on-premises IDC nodes de différentes manières.
-
Configuration d'un prix uniforme pour tous les nœuds IDC sur site
Dans le
namespacekube-system, ajoutez la variable d'environnementDefaultIDCPricePerCPUCoreHourau déploiement ack-cost-exporter pour spécifier un prix uniforme pour tous leson-premises IDC nodes.RemarqueLe prix est exprimé en USD par cœur*heure.
env: # Set the price per core hour for each on-premises IDC node to USD 0.3. - name: DefaultIDCPricePerCPUCoreHour value: "0.3" -
Configuration d'un prix distinct pour un nœud spécifique
Ajoutez l'étiquette
"node.kubernetes.io/price-per-day"à un nœud spécifique pour configurer un prix unique pour ce nœud.RemarqueLe prix correspond au prix total par jour pour ce nœud.
Exécutez la commande suivante pour définir le prix quotidien total d'un nœud spécifique à 100 USD.
kubectl label nodes <node-name> node.kubernetes.io/price-per-day="100"
FAQ
Pourquoi aucune donnée ne s'affiche-t-elle après l'activation de l'analyse des coûts ?
Les données de coût s'affichent à 08 h 00 (UTC+8) le lendemain, et la collecte des données de surveillance commence dans les 3 minutes suivant l'activation de la fonctionnalité. Si les données sont toujours manquantes, vérifiez les points suivants :
Autorisation du rôle RAM : Assurez-vous d'avoir effectué l'étape 3 de la section Activation de Cost Insights.
Accès Internet : Dans certaines régions, l'endpoint interne ne permet pas d'interroger les factures. Assurez-vous que votre cluster dispose d'un accès Internet, généralement via une passerelle NAT.
Ratio jour sur jour et estimation du coût du lendemain : Ces métriques nécessitent deux jours consécutifs de données et n'apparaîtront pas immédiatement après l'activation de la fonctionnalité.
Pourquoi le coût du namespace diffère-t-il du montant réel de la facture ?
Le coût du namespace est une estimation basée sur les prix catalogue, et non sur la facture réelle. Les bons, les remises et les plans d'économies réduisent la facture réelle du cluster, mais ne sont pas reflétés dans les estimations par namespace. Pour calculer le coût alloué d'un namespace, multipliez le coût réel du cluster par le ratio de coût du namespace.
Pourquoi ne puis-je pas obtenir les données de coût des pods sur certains nœuds ?
Il manque l'autorisation ecs:DescribeDisks au rôle RAM. Ajoutez cette autorisation en suivant l'étape 3 de la section Activation de Cost Insights.
Pourquoi la facture n'affiche-t-elle pas tous les services cloud utilisés par mon cluster ?
Cost Insights collecte uniquement les données des services cloud exclusifs à votre cluster. Les services partagés entre plusieurs clusters ne sont pas suivis.
La fonctionnalité utilise les étiquettes d'allocation des coûts dans la console Dépenses et coûts — plus précisément l'étiquette Gestion de la facturationack.aliyun.com:{{ClusterId}}Page des étiquettes d'allocation des coûts — pour identifier les ressources du cluster. Si cette étiquette est désactivée, les données de coût ne peuvent pas être collectées. Sur la page Étiquettes d'allocation des coûts de la console Dépenses et coûts, activez l'étiquette avec la clé ack.aliyun.com et l'étiquette avec la clé ack.alibabacloud.com/nodepool-id.
Pourquoi les dépenses hebdomadaires ou mensuelles sont-elles inférieures au montant réel ?
Les données de coût antérieures à l'activation de la fonctionnalité Cost Insights ne sont pas incluses. La fonctionnalité analyse uniquement les données à partir du moment de son activation.