View a markdown version of this page

Bewusstsein für Ausgaben - Amazon EKS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Bewusstsein für Ausgaben

Ausgabenbewusstsein bedeutet zu verstehen, wer, wo und was die Ausgaben in Ihrem EKS-Cluster verursacht. Wenn Sie sich ein genaues Bild dieser Daten machen, können Sie das Bewusstsein für Ihre Ausgaben schärfen und Bereiche hervorheben, in denen Abhilfe geschaffen werden muss.

Empfehlungen

Verwenden Sie den Cost Explorer

AWS Cost Explorer verfügt über eine benutzerfreundliche Oberfläche, mit der Sie Ihre AWS-Kosten und -Nutzung im Laufe der Zeit visualisieren, verstehen und verwalten können. Mithilfe der im Cost Explorer verfügbaren Filter können Sie Kosten- und Nutzungsdaten auf verschiedenen Ebenen analysieren.

Kosten für EKS Control Plane und EKS Fargate

Mithilfe der Filter können wir die Kosten abfragen, die für die EKS-Kosten bei Control Plane und Fargate Pod anfallen, wie in der folgenden Abbildung dargestellt:

Cost Explorer — EKS Control Plane

Mithilfe der Filter können wir die Gesamtkosten abfragen, die für die Fargate-Pods in allen Regionen in EKS anfallen. Dazu gehören sowohl V CPU-Hours pro CPU als auch GB-Stunden, wie in der folgenden Abbildung dargestellt:

Cost Explorer — EKS Fargate

Markieren von Ressourcen

Amazon EKS unterstützt das Hinzufügen von AWS-Tags zu Ihren Amazon EKS-Clustern. Dies macht es einfach, den Zugriff auf die EKS-API für die Verwaltung Ihrer Cluster zu kontrollieren. Tags, die einem EKS-Cluster hinzugefügt werden, sind spezifisch für die AWS-EKS-Cluster-Ressource. Sie werden nicht an andere AWS-Ressourcen weitergegeben, die vom Cluster verwendet werden, wie EC2-Instances oder Load Balancer. Heute wird Cluster-Tagging für alle neuen und vorhandenen EKS-Cluster über die AWS-API, die Konsole und die SDKs unterstützt.

AWS Fargate ist eine Technologie, die bedarfsgerecht dimensionierte Rechenkapazität für Container bereitstellt. Bevor Sie Pods auf Fargate in Ihrem Cluster planen können, müssen Sie mindestens ein Fargate-Profil definieren, das festlegt, welche Pods Fargate verwenden sollen, wenn sie gestartet werden.

Hinzufügen und Auflisten von Tags zu einem EKS-Cluster:

$ 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" } }

Nachdem Sie die Kostenzuordnungs-Tags im AWS Cost Explorer aktiviert haben, verwendet AWS die Kostenzuordnungs-Tags, um Ihre Ressourcenkosten in Ihrem Kostenzuordnungsbericht zu organisieren, sodass Sie Ihre AWS-Kosten leichter kategorisieren und verfolgen können.

Tags haben keine semantische Bedeutung für Amazon EKS und werden ausschließlich als Zeichenfolgen interpretiert. Sie können beispielsweise eine Reihe von Tags für Ihre Amazon-EKS-Cluster definieren, um Ihnen dabei zu helfen, den Eigentümer und die Stack-Ebene jedes einzelnen Clusters nachzuverfolgen.

Verwenden Sie AWS Trusted Advisor

AWS Trusted Advisor bietet eine Vielzahl von Best-Practice-Prüfungen und Empfehlungen in fünf Kategorien: Kostenoptimierung, Sicherheit, Fehlertoleranz, Leistung und Servicebeschränkungen.

Zur Kostenoptimierung hilft Trusted Advisor dabei, ungenutzte und ungenutzte Ressourcen zu eliminieren, und empfiehlt, die reservierte Kapazität einzuhalten. Die wichtigsten Maßnahmen, die Amazon EKS helfen werden, betreffen unter anderem wenig ausgelastete EC2-Instances, nicht zugeordnete Elastic IP-Adressen, Idle Load Balancer und nicht ausgelastete EBS-Volumes. Die vollständige Liste der Prüfungen finden Sie unter https://aws.amazon.com/premiumsupport/technology/trusted-advisor/best-practice-checklist/.

Der Trusted Advisor bietet auch Empfehlungen zu Sparplänen und Reserved Instances für EC2-Instances und Fargate, sodass Sie sich gegen ermäßigte Tarife auf einen gleichbleibenden Nutzungsbetrag festlegen können.

Anmerkung

Die Empfehlungen von Trusted Advisor sind allgemeine Empfehlungen und nicht spezifisch für EKS.

Sehen Sie sich die Cluster-interne Ressourcennutzung an

Anmerkung

Das https://github.com/kubernetes/dashboard Kubernetes-Dashboard-Projekt ist archiviert und wird nicht mehr aktiv verwaltet. Daher wird die Bereitstellung nicht mehr empfohlen. Verwenden Sie für die Sichtbarkeit der Ressourcen innerhalb des Clusters die folgenden kubectl describe Befehle kubectl top und oder die in den folgenden Abschnitten beschriebenen Ansätze von CloudWatch Container Insights und Kubecost. Informationen zur AWS-native Kostentransparenz und -zuweisung auf Pod-Ebene finden Sie im Abschnitt Split Cost Allocation Data (SCAD) für Amazon EKS weiter unten.

Befehle kubectl top und describe

Metriken zur Ressourcennutzung mit den Befehlen kubectl top und kubectl describe anzeigen. kubectl top zeigt die aktuelle CPU- und Speicherauslastung für die Pods oder Knoten in Ihrem Cluster oder für einen bestimmten Pod oder Knoten an. Der Befehl kubectl describe liefert detailliertere Informationen zu einem bestimmten Knoten oder Pod.

$ kubectl top pods $ kubectl top nodes $ kubectl top pod pod-name --namespace mynamespace --containers

Mit dem Befehl top zeigt die Ausgabe die Gesamtmenge an CPU (in Kernen) und Arbeitsspeicher (in MiB) an, die der Knoten verwendet, sowie die Prozentsätze der zuweisbaren Kapazität des Knotens, für die diese Zahlen stehen. Sie können dann innerhalb der Pods zur nächsten Ebene, der Container-Ebene, gelangen, indem Sie das Flag --containers hinzufügen.

$ kubectl describe node <node> $ kubectl describe pod <pod>

kubectl describe gibt den Prozentsatz der gesamten verfügbaren Kapazität zurück, den jede Ressourcenanforderung oder jedes Limit darstellt.

kubectl top und describe verfolgen die Auslastung und Verfügbarkeit kritischer Ressourcen wie CPU, Arbeitsspeicher und Speicher in Kubernetes-Pods, -Knoten und Containern. Dieses Bewusstsein wird dazu beitragen, den Ressourcenverbrauch zu verstehen und die Kosten zu kontrollieren.

Verwenden Sie Split Cost Allocation Data (SCAD) für Amazon EKS

Split Cost Allocation Data (SCAD) für Amazon EKS fügt Kosten- und Nutzungsdaten auf Containerebene zum AWS-Kosten- und Nutzungsbericht (CUR) hinzu. Bisher meldete CUR die Kosten nur auf Amazon EC2-Instance-Ebene. SCAD schreibt die Kosten einzelnen Pods zu, indem es die amortisierten Kosten der EC2-Instance nimmt und sie mit dem Prozentsatz an CPU und Arbeitsspeicher multipliziert, den jeder Pod auf dieser Instance verbraucht hat. Für jeden Pod werden zwei Nutzungsdatensätze pro Stunde (CPU und Speicher) oder drei bei Instances mit beschleunigter Datenverarbeitung (Beschleuniger, CPU und Speicher) hinzugefügt, die NVIDIA- und AMD-GPUs, AWS Trainium und AWS Inferentia abdecken. Auf diese Weise können Sie die EKS-Ausgaben Geschäftsbereichen, Teams, Namespaces und Workloads zuordnen.

SCAD for Amazon EKS erstellt automatisch Tags für die AWS-generated Kostenzuweisung, einschließlich,, aws:eks:cluster-nameaws:eks:namespace, aws:eks:workload-name und. aws:eks:workload-type aws:eks:deployment aws:eks:node Seit Oktober 2025 können Sie auch bis zu 50 benutzerdefinierte Kubernetes-Labels pro Pod als Kostenzuordnungs-Tags importieren, sodass die Zuordnung nach Attributen wie Kostenstelle, Anwendung, Geschäftseinheit und Umgebung möglich ist. Labels sind innerhalb von 24 Stunden nach der Aktivierung in AWS CUR verfügbar.

Um SCAD zu aktivieren, melden Sie sich in der AWS-Rechnungs- und Kostenmanagement-Konsole unter den Kostenmanagement-Einstellungen an (nur management/payer Konten können sich anmelden; Mitgliedskonten können die Daten dann einsehen), eine Messbasis für Amazon EKS wählen (Ressourcenanfragen, Amazon Managed Service for Prometheus oder CloudWatch Container Insights) und fügen Sie Daten zur geteilten Kostenzuweisung in Ihren Kosten- und Nutzungsbericht ein. SCAD ist in den älteren Versionen CUR und CUR 2.0 (über Datenexporte) verfügbar, aber nicht in AWS Cost Explorer. Vom CUR aus werden die Daten in der Regel mit Amazon Athena abgefragt und in Amazon QuickSight mithilfe der Cloud Intelligence Dashboards (CID) visualisiert, z. B. dem Kostenzuweisungs-Dashboard für SCAD-Container, das direkt auf Daten zur geteilten Kostenverrechnung basiert (ein Kubecost-based Dashboard ist auch verfügbar, wenn Kubecost als Datenquelle verwendet wird).

Verwenden Sie Container Insights CloudWatch

Verwenden Sie CloudWatch Container Insights, um Metriken und Logs aus Ihren containerisierten Anwendungen und Microservices zu sammeln, zu aggregieren und zusammenzufassen. Container Insights ist für Amazon Elastic Kubernetes Service auf EC2 und Kubernetes-Plattformen auf Amazon EC2 verfügbar. Die Metriken umfassen die Auslastung für Ressourcen wie z  B. CPU, Arbeitsspeicher, Datenträger und Netzwerk.

Die Installation von Insights ist in der Dokumentation beschrieben. https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/deploy-container-insights-EKS.html

CloudWatch erstellt aggregierte Metriken auf Cluster-, Knoten-, Pod-, Aufgaben- und Serviceebene als CloudWatch Metriken.

Die folgende Abfrage zeigt eine Liste von Knoten, sortiert nach der durchschnittlichen CPU-Auslastung der Knoten

STATS avg(node_cpu_utilization) as avg_node_cpu_utilization by NodeName
| SORT avg_node_cpu_utilization DESC

CPU-Auslastung nach Container-Namen

stats pct(container_cpu_usage_total, 50) as CPUPercMedian by kubernetes.container_name
| filter Type="Container"

Festplattennutzung nach Container-Namen

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

Weitere Beispielabfragen finden Sie in der Container Insights-Dokumentation

Dieses Bewusstsein hilft, den Ressourcenverbrauch zu verstehen und die Kosten zu kontrollieren.

Verwenden Sie Kubecost zur Bewusstseinsbildung und zur Orientierung

Tools von Drittanbietern wie Kubecost können auch auf Amazon EKS bereitgestellt werden, um einen Überblick über die Betriebskosten Ihres Kubernetes-Clusters zu erhalten. Informationen zur Kostenverfolgung mit Kubecost finden Sie in diesem AWS-Blog

Bereitstellung von Kubecost mit 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

Kubecost Dashboard - Kubernetes Cluster Auto Scaler logs

Verwenden Sie das Kubernetes-Analysetool für Kostenzuweisung und Kapazitätsplanung

Kubernetes Opex Analytics ist ein Tool, mit dem Unternehmen verfolgen können, welche Ressourcen von ihren Kubernetes-Clustern verbraucht werden, um Überzahlungen zu vermeiden. Zu diesem Zweck generiert es kurz- (7 Tage), mittel- (14 Tage) und langfristige (12 Monate) Nutzungsberichte, die relevante Erkenntnisse darüber enthalten, wie viele Ressourcen jedes Projekt im Laufe der Zeit verbraucht.

Kubernetes Opex Analytics

Yotascale

Yotascale hilft bei der genauen Zuweisung der Kubernetes-Kosten. Die Yotascale Kubernetes-Kostenzuweisung verwendet tatsächliche Kostendaten, die Rabatte für Reserved Instances und Spot-Instance-Preise enthalten, anstatt generischer Marktpreisschätzungen, um den Gesamtkostenbedarf von Kubernetes zu ermitteln

Weitere Informationen finden Sie auf ihrer Website.

Alcide Advisor

Alcide ist ein fortschrittlicher Technologiepartner des AWS-Partnernetzwerks (APN). Alcide Advisor hilft sicherzustellen, dass Ihre Amazon EKS-Cluster-, Knoten- und Pod-Konfiguration so abgestimmt sind, dass sie gemäß den bewährten Sicherheitsmethoden und internen Richtlinien ausgeführt werden. Alcide Advisor ist ein agentenloser Service für Kubernetes-Audit und Compliance, der darauf ausgelegt ist, einen reibungslosen und sicheren DevSecOps Ablauf zu gewährleisten, indem er die Entwicklungsphase vor dem Übergang zur Produktion abhärtet.

Weitere Details finden Sie in diesem Blogbeitrag. https://aws.amazon.com/blogs/apn/driving-continuous-security-and-configuration-checks-for-amazon-eks-with-alcide-advisor/

Andere Tools

Kubernetes-Müllsammlung

Die Rolle des Kubernetes-Garbage Collectors besteht darin, bestimmte Objekte zu löschen, die einst einen Besitzer hatten, aber keinen Besitzer mehr haben.

Anzahl Fargate

Fargatecount ist ein nützliches Tool, mit dem AWS-Kunden anhand einer benutzerdefinierten CloudWatch Metrik die Gesamtzahl der EKS-Pods verfolgen können, die auf Fargate in einer bestimmten Region eines bestimmten Kontos bereitgestellt wurden. Dies hilft dabei, den Überblick über alle Fargate-Pods zu behalten, die in einem EKS-Cluster ausgeführt werden.

Popeye — Ein Kubernetes-Cluster-Desinfektionsmittel

Popeye — A Kubernetes Cluster Sanitizer ist ein Hilfsprogramm, das Live-Kubernetes-Cluster scannt und potenzielle Probleme mit bereitgestellten Ressourcen und Konfigurationen meldet. Es bereinigt deinen Cluster auf der Grundlage dessen, was bereitgestellt wurde, und nicht darauf, was sich auf der Festplatte befindet. Durch das Scannen Ihres Clusters werden Fehlkonfigurationen erkannt und Sie können sicherstellen, dass die Best Practices eingehalten werden

Ressourcen

In den folgenden Ressourcen erfahren Sie mehr über bewährte Methoden zur Kostenoptimierung.

Dokumentation und Blogs

Tools