BillionPhotos.com - Fotolia
In fünf Schritten die Kubernetes-Kosten senken
Ist Ihre Kubernetes-Rechnung außer Kontrolle? Wir erklären, wie Sie in fünf Schritten die Kosten senken und dafür sorgen, dass es in Zukunft keine bösen Überraschungen mehr gibt.
Das wichtigste Argument für die Cloud-Nutzung ist die Effizienz – und das schließt die Kosteneffizienz mit ein. Leider haben viele Kubernetes-Spezialisten in erster Linie die technischen Faktoren im Blick und vernachlässigen das Thema Kosten. Erfahren Sie in diesem Artikel, welche Best Practices für das Kostenmanagement Sie berücksichtigen müssen, und worauf Sie bei einer Kubernetes-Bereitstellung achten sollten.
Bevor Sie sich im Detail mit dem Kostenmanagement für Kubernetes befassen, sollten Sie die Auswirkung dessen, wie Ihr Unternehmen Kubernetes nutzt, auf die Kosten verstehen. Die wirtschaftlichste Strategie ist meist das Hosten von Kubernetes-Software und -Anwendungen in virtuellen Maschinen (VMs) in der Cloud. Auf diesem Weg haben Sie die besten Möglichkeiten zur Kostenkontrolle und können das Konzept im Rechenzentrum genauso gut umsetzen, wie in der Cloud.
Aus diesem Grund konzentrieren wir uns bei unseren Tipps auf eben dieses Modell mit Kubernetes in virtuellen Maschinen. Verwaltete Container- und Kubernetes-Dienste sind oft teurer – sparen Ihnen aber auf der anderen Seite Betriebskosten. Bevor Sie wesentliche Änderungen an Ihrem Ansatz vornehmen, prüfen Sie, ob ein anderes Kubernetes-Hosting-Modell für Sie wirklich von Vorteil wäre.
1. Finden Sie die richtigen Tools
In einem ersten Schritt sollten Sie sich ein Kubernetes-Kostenmanagement-Tool zulegen. Kubecost ist hier eine populärste Wahl. Es handelt sich um ein Open-Source-Tool, das die IT-Umgebung analysiert, um Strategien zur Kostensenkung zu empfehlen. Es eignet sich jedoch eher für größere Unternehmen – für kleinere Kubernetes-Umgebungen ist es wahrscheinlich zu viel des Guten. Einige Benutzer bevorzugen daher andere Tools wie CloudForecast. Kubernetes-Überwachungs-Tools unterstützen ebenfalls die Kostenanalyse und -optimierung, erfordern jedoch mehr Arbeit.
Es ist wichtig, dass die Kostenmanagement-Tools und -Praktiken, die Sie für Kubernetes verwenden, Rückbelastungs- und Kostenüberprüfungsrichtlinien berücksichtigen können. Viele Organisationen überwachen Cloud-Kosten nicht zentral, sondern jeweils für unterschiedliche Geschäftsbereiche getrennt. Das reißt große Lücken in die Kostentransparenz. Wenn Kubernetes-Bereitstellungen Komponenten gemeinsam nutzen, kann es schwierig sein, festzustellen, ob sie ineffizient sind oder häufiger als erwartet verwendet werden.
2. Analysieren Sie den Ressourcenbedarf
Als nächstes sollten Sie sich der Frage zuwenden, wie Ihr System mit den verfügbaren Ressourcen umgeht. Die meisten Cloud-Kubernetes-Bereitstellungen auf VMs setzen auf eine Kombination aus reservierten und On-Demand-Instanzen, manchmal ergänzt mit Serverlosen Funktionen. Ein Wechsel von reserviert zu serverlos erhöht zwar die Kosten, solange Anwendungen laufen; das wird aber dadurch ausgeglichen, dass Sie nichts bezahlen, wenn die Anwendung ruht.
Der Wunsch nach einer skalierbaren Kubernetes-Umgebung könnte Sie dazu bewegen, verstärkt die teureren On-Demand-Instanzen zu nutzen und das Funktions-Hosting treibt die Kosten noch weiter. Finden Sie daher heraus, welche wiederkehrenden Leistungsspitzen Sie erwarten können und weisen Sie genug reservierte Instanzen zu, die Ihre durchschnittlichen Workloads unterstützen.
3. Verwalten Sie Instanzen und Datenverkehr
Artverwandt zum vorrangegangenen Tipp ist das Verwalten von AWS Spot Instances. Spot-Instanzen sind die billigsten Cloud-Ressourcen, doch sie sind nicht immer verfügbar. Wenn Sie Anwendungen oder Komponenten haben, die Sie nur selten verwenden und die kleinere Verzögerungen vertragen – die Sie benötigen, um die Verfügbarkeit zu überprüfen – lässt sich hier ein großes Einsparpotential realisieren.
Unerwartete Kosten können Ihnen außerdem entstehen, wenn Sie eine fehlerhafte Komponente neu starten müssen und dabei versehentlich Egress-Gebühren generieren. Nahezu alle Cloud-Anbieter erheben Gebühren für ausgehenden Datenverkehr, und das Verschieben einer Komponente von ihrem normalen Hosting-Punkt an einen Ort außerhalb seiner angestammten Umgebung, zum Beispiel in eine andere Cloud, führt zu zusätzlichen Kosten. Optimieren Sie Kubernetes mit Affinitäten, Taints und Toleranzen, um zu vermeiden, dass Anwendungs-Workflows unnötig Kosten verursachen.
4. Weisen Sie Ressourcen sinnvoll zu
Neben ineffizienten Kubernetes-Konfigurationen werden unerwartete Kosten oft dadurch verursacht, dass die Container-Ressourcenanforderungen nicht zu den Knotenressourcen passen. Es besteht die Versuchung, eine Kubernetes-Bereitstellung zu vereinfachen, indem Sie die Zahl der Ressourcenklassen einschränken. Einige Profis glauben, dass zu viele Ressourcenklassen den Ressourcenpool fragmentieren und die Effizienz verringern.
Es ist jedoch eine massive Geldverschwendung, sparsame Container auf großzügigen Knoten zu betreiben. Gestalten Sie Container-Ressourcenklassen und Kubernetes-Bereitstellungsrichtlinien so um, dass sie Knoten so effizient wie möglich nutzen.
5. Bewerten Sie verschiedene Angebote
Zu guter Letzt ist es immer sinnvoll, Ausschau nach besseren Angeboten zu halten. Es gibt oft erhebliche Kostenunterschiede zwischen Cloud-Anbietern. Alle großen Anbieter verfügen über interaktive Tools zur Kostenvorhersage, mit denen sich leicht abschätzen lässt, welche Architektur und Dienste bei Ihrem Anbieter die günstigere Wahl sind und wie sie im Vergleich zu anderen Anbietern abschneiden.
Wenn Sie glauben, ein günstigeres Angebot gefunden zu haben, führen Sie einen Test durch, um die Schätzung zu validieren und die potenziellen Kosten für den Wechsel zu berechnen. Im Allgemeinen gilt, dass die Kosten mit der Zahl der Cloud-Services, die Sie nutzen, steigen.
Unabhängig davon, welche Maßnahmen Sie einleiten, um Ihre Kubernetes-Rechnung zu senken, denken Sie daran, dass manche Maßnahmen zu höheren Betriebskosten oder einer Beeinträchtigung der Benutzerqualität (Quality of Experience, QoE) führen können. Untersuchen Sie jeden Schritt vollständig, damit Sie nicht die Kosten an einer Stelle senken, nur um sie an einer anderen Stelle zu erhöhen – oder die Qualität Ihres Produkts beeinträchtigen.