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 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 verfügt über eine easy-to-use 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 auf der Kontrollebene und dem Fargate-Pod entstanden sind, wie in der folgenden Abbildung dargestellt:

Cost Explorer - EKS-Steuerebene

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:

Cost Explorer - EKS Fargate

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.

Kubernetes-Dashboard

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 können auch auf Amazon EKS bereitgestellt werden, um einen Überblick über die Kosten für den Betrieb 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 nachverfolgen können, welche Ressourcen von ihren Kubernetes-Clustern verbraucht werden, um zu hohe Zahlungen zu vermeiden. Zu diesem Zweck werden kurz- (7 Tage), mittel- (14 Tage) und langfristige (12 Monate) Nutzungsberichte generiert, die relevante Erkenntnisse darüber enthalten, wie viel Ressourcen jedes Projekt im Laufe der Zeit verbraucht.

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 Sie auf ihrer Website.

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 besteht darin, bestimmte Objekte zu löschen, die einmal einen Besitzer hatten, aber keinen Besitzer mehr haben.

Grafschaft 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-Desinfizierer

Popeye — Ein Kubernetes Cluster Sanitizer ist ein Hilfsprogramm, das Live-Kubernetes-Cluster scannt und potenzielle Probleme mit bereitgestellten Ressourcen und Konfigurationen meldet. Es bereinigt Ihren Cluster auf der Grundlage dessen, was bereitgestellt wird und nicht darauf, was sich auf der Festplatte befindet. Durch das Scannen Ihres Clusters werden Fehlkonfigurationen erkannt und Sie können sicherstellen, dass bewährte Verfahren angewendet werden

Ressourcen

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

Dokumentation und Blogs

Tools