Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Sensibilisation aux dépenses
La connaissance des dépenses consiste à comprendre qui, où et à quoi sont à l'origine des dépenses dans votre cluster EKS. L'obtention d'une image précise de ces données permettra de mieux faire connaître vos dépenses et de mettre en évidence les domaines à corriger.
Recommandations
Utilisez Cost Explorer
AWS Cost Explorer
Coûts EKS Control Plane et EKS Fargate
À l'aide des filtres, nous pouvons rechercher les coûts encourus pour les coûts EKS au Control Plane et au Fargate Pod, comme indiqué dans le schéma ci-dessous :
À l'aide des filtres, nous pouvons interroger les coûts agrégés encourus pour les Fargate Pods dans toutes les régions en EKS, ce qui inclut à la fois v CPU-Hours par processeur et les Go d'heures, comme le montre le schéma ci-dessous :
Balisage des ressources
Amazon EKS prend en charge l'ajout de balises AWS à vos clusters Amazon EKS. Cela permet de contrôler facilement l'accès à l'API EKS pour gérer vos clusters. Les balises ajoutées à un cluster EKS sont spécifiques à la ressource du cluster AWS EKS, elles ne se propagent pas aux autres ressources AWS utilisées par le cluster, telles que les instances EC2 ou les équilibreurs de charge. Aujourd'hui, le balisage des clusters est pris en charge pour tous les clusters EKS nouveaux et existants via l'API, la console et les kits de développement logiciel AWS.
AWS Fargate est une technologie qui fournit une capacité de calcul adaptée à la demande pour les conteneurs. Avant de pouvoir planifier des pods sur Fargate dans votre cluster, vous devez définir au moins un profil Fargate qui spécifie quels pods doivent utiliser Fargate lors de leur lancement.
Ajouter et répertorier des balises dans un cluster EKS :
$ aws eks tag-resource --resource-arn arn:aws:eks:us-west-2:xxx:cluster/ekscluster1 --tags team=devops,env=staging,bu=cio,costcenter=1234 $ aws eks list-tags-for-resource --resource-arn arn:aws:eks:us-west-2:xxx:cluster/ekscluster1 { "tags": { "bu": "cio", "env": "staging", "costcenter": "1234", "team": "devops" } }
Une fois que vous avez activé les balises de répartition des coûts dans AWS Cost Explorer, AWS utilise les balises de répartition des coûts pour organiser les coûts de vos ressources dans votre rapport de répartition des coûts, afin de vous permettre de classer et de suivre plus facilement vos coûts AWS.
Les identifications n’ont pas de signification sémantique pour Amazon EKS et sont interprétées strictement comme des chaînes de caractères. Par exemple, vous pouvez définir un ensemble de balises pour vos clusters Amazon EKS afin de vous aider à suivre le propriétaire et le niveau de pile de chaque cluster.
Utilisez AWS Trusted Advisor
AWS Trusted Advisor propose un ensemble complet de vérifications des meilleures pratiques et de recommandations dans cinq catégories : optimisation des coûts, sécurité, tolérance aux pannes, performances et limites de service.
Pour optimiser les coûts, Trusted Advisor aide à éliminer les ressources inutilisées et inactives et recommande de prendre des engagements en matière de capacité réservée. Les principales mesures qui aideront Amazon EKS concerneront notamment les instances EC2 peu utilisées, les adresses IP Elastic non associées, les équilibreurs de charge inactifs et les volumes EBS sous-utilisés. La liste complète des contrôles est disponible sur https://aws.amazon.com/premiumsupport/technology/trusted-advisor/best-practice-checklist/.
The Trusted Advisor fournit également des recommandations de plans d'épargne et d'instances réservées pour les instances EC2 et Fargate, ce qui vous permet de vous engager à un montant d'utilisation constant en échange de tarifs réduits.
Note
Les recommandations de Trusted Advisor sont des recommandations génériques et ne sont pas spécifiques à EKS.
Afficher l'utilisation des ressources dans le cluster
Note
Le projet kubectl describe commandes kubectl top et ci-dessous, ou les approches CloudWatch Container Insights et Kubecost décrites dans les sections suivantes. Pour en AWS-native savoir plus sur la visibilité et l'attribution des coûts au niveau des modules, consultez la section Données de répartition des coûts fractionnées (SCAD) pour Amazon EKS ci-dessous.
commandes kubectl top et describe
Afficher les statistiques d'utilisation des ressources à l'aide des commandes kubectl top et kubectl describe. kubectl top affiche l'utilisation actuelle du processeur et de la mémoire pour les pods ou les nœuds de votre cluster, ou pour un pod ou un nœud spécifique. La commande kubectl describe fournira des informations plus détaillées sur un nœud ou un pod spécifique.
$ kubectl top pods $ kubectl top nodes $ kubectl top pod pod-name --namespace mynamespace --containers
À l'aide de la commande top, la sortie affiche la quantité totale de processeur (en cœurs) et de mémoire (en MiB) que le nœud utilise, ainsi que les pourcentages de capacité allouable du nœud que ces chiffres représentent. Vous pouvez ensuite passer au niveau suivant, le niveau des conteneurs dans les pods, en ajoutant un indicateur --containers.
$ kubectl describe node <node> $ kubectl describe pod <pod>
kubectl describe renvoie le pourcentage de la capacité totale disponible que représente chaque demande ou limite de ressource.
kubectl top and describe, suivez l'utilisation et la disponibilité des ressources critiques telles que le processeur, la mémoire et le stockage sur les pods, les nœuds et les conteneurs Kubernetes. Cette prise de conscience aidera à comprendre l'utilisation des ressources et à contrôler les coûts.
Utiliser les données de répartition des coûts fractionnés (SCAD) pour Amazon EKS
Les données d'allocation des coûts fractionnées (SCAD) pour Amazon EKS ajoutent des données de coût et d'utilisation au niveau du conteneur au rapport sur les coûts et l'utilisation (CUR) AWS. Auparavant, CUR ne déclarait les coûts qu'au niveau de l'instance Amazon EC2 ; SCAD attribue le coût aux espaces individuels en multipliant le coût amorti de l'instance EC2 par le pourcentage de processeur et de mémoire que chaque module consommait sur cette instance. Pour chaque module, il ajoute deux enregistrements d'utilisation par heure (processeur et mémoire), ou trois sur des instances de calcul accéléré (accélérateur, processeur et mémoire) couvrant les GPU NVIDIA et AMD, AWS Trainium et AWS Inferentia. Cela vous permet d'attribuer les dépenses EKS aux unités commerciales, aux équipes, aux espaces de noms et aux charges de travail.
SCAD pour Amazon EKS crée automatiquement des balises de répartition des AWS-generated coûtsaws:eks:cluster-name, notammentaws:eks:namespace,aws:eks:workload-name, aws:eks:workload-typeaws:eks:deployment, etaws:eks:node. Depuis octobre 2025,
Pour activer le SCAD, connectez-vous depuis la console AWS Billing and Cost Management dans les préférences de gestion des coûts (seuls les management/payer comptes peuvent s'inscrire ; les comptes membres peuvent alors consulter les données), choisissez une base de mesure pour Amazon EKS (demandes de ressources, Amazon Managed Service pour Prometheus ou CloudWatch Container Insights) et incluez des données de répartition des coûts fractionnés dans votre rapport sur les coûts et l'utilisation. Le SCAD est disponible dans les versions existantes du CUR et du CUR 2.0 (via Data Exports), mais pas dans AWS Cost Explorer. À partir du CUR, les données sont généralement interrogées auprès d'Amazon Athena et visualisées dans Amazon à QuickSight l'aide des tableaux de bord Cloud Intelligence (CID), tels que le tableau de bord de répartition des coûts des conteneurs SCAD construit directement à partir des données de répartition des coûts fractionnés (un tableau de Kubecost-based bord est également disponible lorsque vous utilisez Kubecost comme source de données).
Utilisez CloudWatch Container Insights
Utilisez CloudWatch Container Insights pour collecter, agréger et résumer les métriques et les journaux de vos applications conteneurisées et de vos microservices. Container Insights est disponible pour Amazon Elastic Kubernetes Service sur EC2 et pour les plateformes Kubernetes sur Amazon EC2. Les métriques incluent l'utilisation des ressources telles que l'UC, la mémoire, le disque et le réseau.
L'installation d'insights est indiquée dans la documentation.
CloudWatch crée des métriques agrégées au niveau du cluster, du nœud, du pod, de la tâche et du service en tant que CloudWatch métriques.
La requête suivante affiche une liste de nœuds, triés par utilisation moyenne du processeur des nœuds
STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName | SORT avg_node_cpu_utilization DESC
Utilisation du processeur par nom de conteneur
stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name | filter Type="Container"
Utilisation du disque par nom de conteneur
stats floor(avg(container_filesystem_usage/1024)) as container_filesystem_usage_avg_kb by InstanceId, kubernetes.container_name, device | filter Type="ContainerFS" | sort container_filesystem_usage_avg_kb desc
D'autres exemples de requêtes sont fournis dans la documentation Container Insights
Cette prise de conscience aidera à comprendre l'utilisation des ressources et à contrôler les coûts.
Utilisation de Kubecost pour la sensibilisation et l'orientation en matière de dépenses
Des outils tiers tels que kubecost
Déploiement de kubecost à l'aide de Helm 3 :
$ curl -sSL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash $ helm version --short v3.2.1+gfe51cd1 $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/ $ helm repo add stable https://kubernetes-charts.storage.googleapis.com/c^C $ kubectl create namespace kubecost namespace/kubecost created $ helm repo add kubecost https://kubecost.github.io/cost-analyzer/ "kubecost" has been added to your repositories $ helm install kubecost kubecost/cost-analyzer --namespace kubecost --set kubecostToken="aGRoZEBqc2pzLmNvbQ==xm343yadf98" NAME: kubecost LAST DEPLOYED: Mon May 18 08:49:05 2020 NAMESPACE: kubecost STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: --------------------------------------------------Kubecost has been successfully installed. When pods are Ready, you can enable port-forwarding with the following command: kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090 Next, navigate to http://localhost:9090 in a web browser. $ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 9090 NOTE: If you are using Cloud 9 or have a need to forward it to a different port like 8080, issue the following command $ kubectl port-forward --namespace kubecost deployment/kubecost-cost-analyzer 8080:9090
Tableau de bord Kubecost -
Utilisez l'outil d'analyse de la répartition des coûts et de la planification des capacités de Kubernetes
Kubernetes Opex Analytics
Échelle de Yota
Yotascale permet de répartir avec précision les coûts de Kubernetes. La fonctionnalité d'allocation des coûts de Yotascale Kubernetes utilise les données de coûts réels, qui incluent les remises sur les instances réservées et la tarification au comptant des instances, au lieu d'estimations génériques des taux du marché, afin de déterminer l'empreinte financière totale de Kubernetes
Plus de détails peuvent être trouvés sur leur site Web
Alcide Advisor
Alcide est un partenaire technologique avancé du réseau de partenaires AWS (APN). Alcide Advisor permet de s'assurer que la configuration de votre cluster, de vos nœuds et de vos pods Amazon EKS est optimisée pour fonctionner conformément aux meilleures pratiques de sécurité et aux directives internes. Alcide Advisor est un service sans agent pour l'audit et la conformité de Kubernetes conçu pour garantir un DevSecOps flux fluide et sécurisé en durcissant la phase de développement avant de passer à la production.
Vous trouverez plus de détails dans ce billet de blog
Autres outils
Collecte des déchets Kubernetes
Le rôle du ramasse-miettes Kubernetes
Nombre de Fargate
Fargatecount
Popeye - Un assainisseur de clusters Kubernetes
Popeye - A Kubernetes Cluster Sanitizer
Ressources
Consultez les ressources suivantes pour en savoir plus sur les meilleures pratiques en matière d'optimisation des coûts.