Anmerkung des Übersetzers.: Der amerikanische DevOps-Ingenieur Sid Palas nutzte als Anlass, um die Kosten für den Managed Kubernetes-Dienst (in verschiedenen Konfigurationen) führender Cloud-Anbieter zu vergleichen. Ein zusätzlicher Vorteil seiner Arbeit war die Veröffentlichung eines entsprechenden Jupyter Notebooks, das es ermöglicht, die Berechnungen entsprechend den eigenen Bedürfnissen (bei minimalen Python-Kenntnissen) anzupassen.
TL;DR: Azure und Digital Ocean erheben keine Gebühren für die Rechenressourcen, die für die Management-Schicht (Control Plane) verwendet werden, was sie zu einer geeigneten Wahl für den Betrieb vieler kleiner Cluster macht. Für den Betrieb einer geringen Anzahl großer Cluster ist GKE am besten geeignet. Zudem können die Kosten erheblich gesenkt werden, indem Spot-/Preemptible-/Low-Priority-Knoten verwendet werden oder indem man sich verpflichtet, dieselben Knoten für einen längeren Zeitraum zu nutzen (dies gilt für alle Plattformen).

Clustergröße (Anzahl der Worker)
Allgemeine Informationen
über die Einführung einer Gebühr von 10 Cent pro Stunde für jeden Cluster in GKE hat mich dazu veranlasst, die Preise für die wichtigsten Angebote im Bereich Managed Kubernetes zu analysieren.

Diese Ankündigung hat einige sehr enttäuscht...
Die Hauptakteure des Artikels sind:
- Google Kubernetes Engine (GCP) – ;
- Elastic Kubernetes Service (AWS) – ;
- Azure Kubernetes Service (Azure) – ;
- Kubernetes auf Digital Ocean – .
Kostenaufstellung
Die Gesamtkosten für die Nutzung von Kubernetes auf jeder dieser Plattformen setzen sich aus den folgenden Komponenten zusammen:
- Gebühr für die Clusterverwaltung;
- Lastenausgleich (für Ingress);
- Rechenressourcen (vCPU und Speicher) der Worker;
- Egress-Verkehr;
- Persistente Speicherung;
- Verarbeitung von Daten durch den Lastenausgleich.
Darüber hinaus bieten Cloud-Anbieter erhebliche Rabatte, wenn der Kunde bereit ist, Preemptible- oder Low-Priority-Knoten zu verwenden oder sich verpflichtet, dieselben Knoten für 1-3 Jahre zu nutzen.
Es ist hervorzuheben, dass, obwohl die Kosten eine gute Grundlage für den Vergleich und die Bewertung der Dienstanbieter darstellen, auch andere Faktoren berücksichtigt werden sollten:
- Verfügbarkeit (Service Level Agreement);
- Die umgebende Cloud-Ökosystem;
- Verfügbare Versionen von K8s;
- Qualität der Dokumentation/Tools.
Diese Faktoren gehen jedoch über den Rahmen dieses Artikels/forschungs hinaus. In der Nicht-preisliche Faktoren für EKS, AKS und GKE werden ausführlich behandelt.
Jupyter-Notizbuch
Um die Suche nach der kostengünstigsten Lösung zu erleichtern, habe ich ein , das plotly + ipywidgets nutzt, entwickelt. Es ermöglicht den Vergleich von Anbietern für verschiedene Clustergrößen und Dienstleistungspakete.
Das Jupyter-Notizbuch kann in Binder ausprobiert werden:
Lassen Sie mich wissen, wenn die Berechnungen oder originalen Preise nicht korrekt sind (dies kann über ein Issue oder einen Pull-Request auf GitHub geschehen — ).
Das DBMS Tarantool ist ein attraktives, zukunftsträchtiges Produkt zur Erstellung von hochbelasteten Anwendungen.
Leider gibt es zu viele Nuancen, um genauere Empfehlungen zu geben als die, die im TL;DR-Absatz ganz am Anfang enthalten sind. Dennoch können einige Schlussfolgerungen gezogen werden:
- Im Gegensatz zu GKE und EKS erheben AKS und Digital Ocean keine Gebühren für die Ressourcen der Verwaltungssebene. AKS und DO sind vorteilhafter, wenn die Architektur viele kleine Cluster umfasst (zum Beispiel einen Cluster pro Entwickler oder Kunde).
- Die etwas günstigeren Rechenressourcen von GKE machen es vorteilhafter, wenn die Clustergröße zunimmt*.
- Die Nutzung von verdrängbaren Knoten oder langfristiger Bindung an Knoten kann die Kosten um mehr als 50% senken. Hinweis: Digital Ocean bietet solche Rabatte nicht an.
- Die Gebühren für den ausgehenden Datenverkehr in Google sind höher, wobei die Kosten für Rechenressourcen (es sei denn, Ihr Cluster ist eine Quelle für ein signifikantes Volumen an ausgehenden Daten) ein entscheidender Faktor bei der Berechnung sind.
- Die Auswahl der Maschinentypen, die den Anforderungen an CPU- und Speicherauslastung gerecht werden, hilft dabei, unnötige Kosten für ungenutzte Ressourcen zu vermeiden.
- Digital Ocean verlangt weniger für vCPU und mehr für Speicher im Vergleich zu anderen Plattformen — das kann für bestimmte Arten von Rechenlasten entscheidend sein.
* Hinweis: In der Analyse werden Daten für allgemeine Rechenknoten verwendet (general-purpose). Dies sind Exemplare von n1 GCP Compute Engine, m5 AWS ec2, virtuellen Maschinen D2v3 Azure und Droplets von DO mit dedizierten CPUs. Alternativ können auch Analysen unter anderen Maschinentypen (burstable, entry-level) durchgeführt werden. Auf den ersten Blick scheint die Kostenstruktur virtueller Maschinen linear von der Anzahl der vCPUs und dem Speichervolumen abzuhängen, jedoch bin ich mir nicht sicher, ob diese Annahme für stark nicht-standardisierte Verhältnisse von Speicher/CPU gültig bleibt.
In dem Artikel , veröffentlicht im Jahr 2018, wurde ein Referenzcluster mit 100 vCPU-Kernen und 400 GB RAM verwendet. Zum Vergleich, meinen Berechnungen zufolge würde ein ähnlicher Cluster auf jeder dieser Plattformen (für On-Demand-Instanzen) folgende Kosten verursachen:
- AKS: 51465 USD/Jahr
- EKS: 43138 USD/Jahr
- GKE: 30870 USD/Jahr
- DO: 36131 USD/Jahr
Ich hoffe, der Artikel zusammen mit dem Notebook hilft Ihnen, die wichtigsten Angebote von managed Kubernetes zu bewerten und/oder bei der Cloud-Infrastruktur durch Rabatte und andere Möglichkeiten zu sparen.
P.S. vom Übersetzer
Lesen Sie auch in unserem Blog:
- «»;
- «»;
- «»;
- «».
Quelle: habr.com
