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 von diesen Daten machen, können Sie das Bewusstsein für Ihre Ausgaben schärfen und Bereiche aufzeigen, in denen Abhilfemaßnahmen erforderlich sind.
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 auf der Kontrollebene und dem Fargate-Pod entstanden sind, wie in der folgenden Abbildung dargestellt:

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

Verschlagwortung 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. Zu einem EKS-Cluster hinzugefügte Tags sind spezifisch für die AWS EKS-Clusterressource. Sie werden nicht auf andere vom Cluster verwendete AWS-Ressourcen wie EC2 Instances oder Load Balancer übertragen. Heute wird Cluster-Tagging für alle neuen und vorhandenen EKS-Cluster über die AWS-API, Konsole und 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 einfacher kategorisieren und verfolgen können.
Tags haben für Amazon EKS keine semantische Bedeutung und werden ausschließlich als Zeichenfolge interpretiert. Sie können beispielsweise eine Reihe von Tags für Ihre Amazon EKS-Cluster definieren, um Ihnen zu helfen, den Besitzer und die Stack-Ebene jedes Clusters zu verfolgen.
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, Verpflichtungen für reservierte Kapazitäten einzugehen. Die wichtigsten Maßnahmen, die Amazon EKS helfen werden, betreffen unter anderem wenig genutzte 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 -practice-checklist/. https://aws.amazon.com/premiumsupport/ technology/trusted-advisor/best
Der Trusted Advisor bietet auch Empfehlungen zu Savings Plans und Reserved EC2 Instances für Instances und Fargate, sodass Sie sich gegen vergünstigte Tarife auf einen gleichbleibenden Nutzungsbetrag festlegen können.
Anmerkung
Die Empfehlungen von Trusted Advisor sind allgemeine Empfehlungen und nicht spezifisch für EKS.
Verwenden Sie das Kubernetes-Dashboard
Kubernetes-Dashboard
Das Kubernetes-Dashboard ist eine allgemeine, webbasierte Benutzeroberfläche für Kubernetes-Cluster, die Informationen über den Kubernetes-Cluster einschließlich der Ressourcennutzung auf Cluster-, Knoten- und Pod-Ebene bereitstellt. Die Bereitstellung des Kubernetes-Dashboards auf einem Amazon EKS-Cluster wird in der Amazon EKS-Dokumentation beschrieben.
Das Dashboard bietet Aufschlüsselungen zur Ressourcennutzung für jeden Knoten und Pod sowie detaillierte Metadaten zu Pods, Diensten, Bereitstellungen und anderen Kubernetes-Objekten. Diese konsolidierten Informationen bieten Einblick in Ihre Kubernetes-Umgebung.

kubectl Befehle 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 Speicher (in MiB) an, die der Knoten verwendet, sowie die Prozentsätze der zuweisbaren Kapazität des Knotens, die diese Zahlen darstellen. Sie können dann einen Drilldown zur nächsten Ebene, der Containerebene innerhalb von Pods, durchführen, indem Sie das Flag --containers hinzufügen.
$ kubectl describe node <node> $ kubectl describe pod <pod>
kubectl describe gibt den Prozentsatz der verfügbaren Gesamtkapazität zurück, den jede Ressourcenanforderung oder jedes Limit darstellt.
kubectl top and describe verfolgt die Nutzung und Verfügbarkeit kritischer Ressourcen wie CPU, Arbeitsspeicher und Speicher in Kubernetes-Pods, -Knoten und Containern. Dieses Bewusstsein hilft dabei, die Ressourcennutzung zu verstehen und die Kosten zu kontrollieren.
Verwenden Sie CloudWatch Container Insights
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 verfügbar. EC2 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.
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 Dokumentation zu Container Insights
Dieses Bewusstsein wird dazu beitragen, den Ressourcenverbrauch zu verstehen und die Kosten zu kontrollieren.
Nutzung von Kubecost zur Sensibilisierung und Orientierung bei den Ausgaben
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

Yotaskala
Yotascale hilft bei der genauen Zuordnung der Kubernetes-Kosten. Die Funktion Yotascale Kubernetes Cost Allocation verwendet tatsächliche Kostendaten, einschließlich Reserved Instance-Rabatte und Spot-Instance-Preise, anstelle von generischen Marktpreisschätzungen, um den gesamten Kostenaufwand für Kubernetes zu ermitteln
Weitere Informationen finden
Berater von Alcide
Alcide ist ein Advanced Technology Partner des AWS-Partnernetzwerks (APN). Alcide Advisor hilft sicherzustellen, dass Ihre Amazon EKS-Cluster-, Knoten- und Pods-Konfiguration so abgestimmt sind, dass sie den bewährten Sicherheitsmethoden und internen Richtlinien entsprechen. Alcide Advisor ist ein agentenloser Service für die Prüfung und Einhaltung von Vorschriften bei Kubernetes, der darauf ausgelegt ist, einen reibungslosen und sicheren DevSecOps Ablauf zu gewährleisten, indem er die Entwicklungsphase vor der Umstellung auf die Produktion verhärtet.
Weitere Einzelheiten finden Sie in diesem Blogbeitrag.
Andere Tools
Kubernetes-Garbage-Collection
Die Rolle des Kubernetes-Garbage-Collectors
Grafschaft Fargate
Fargatecount
Popeye — Ein Kubernetes-Cluster-Desinfizierer
Popeye — Ein Kubernetes Cluster Sanitizer
Ressourcen
In den folgenden Ressourcen erfahren Sie mehr über bewährte Methoden zur Kostenoptimierung.