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
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:
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:
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/dashboardkubectl 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
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
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 -
Verwenden Sie das Kubernetes-Analysetool für Kostenzuweisung und Kapazitätsplanung
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
Anzahl Fargate
Fargatecount
Popeye — Ein Kubernetes-Cluster-Desinfektionsmittel
Popeye — A Kubernetes Cluster Sanitizer
Ressourcen
In den folgenden Ressourcen erfahren Sie mehr über bewährte Methoden zur Kostenoptimierung.