en / de
AI
Expertisen
Methoden
Dienstleistungen
Referenzen
Jobs & Karriere
Firma
Technologie-Trends TechCast WebCast TechBlog News Events Academy

Kubernetes zur Vermeidung von Cloud Vendor Lock-in

Cloud-Plattformen bieten zahlreiche Vorteile, bergen jedoch auch Risiken – allen voran das Risiko eines Vendor Lock-ins. Kann Kubernetes als Abstraktionsschicht dazu beitragen, diese Abhängigkeiten zu vermeiden?

Verheissungsvolle Cloud mit Risiken

Wenn heute neue Applikationen entwickelt oder bereitgestellt werden, stellt sich unweigerlich die Frage nach der geeigneten Plattform. Cloud-Plattformen bieten sich oft an, da sie flexibel skalierbare Ressourcen zur Verfügung stellen. Auch Anforderungen wie Geo-Redundanz, Datensicherung oder Betriebsverantwortung sind in der Regel bereits integriert (siehe z. B. „5 Essential Characteristics of the Cloud | amtelco“ für eine kurze Einführung).

Die zahlreichen Vorteile gehen jedoch mit nicht zu unterschätzenden Risiken und Nachteilen einher:

Viele Organisationen stellen sich daher die Frage: Wie lassen sich die Vorteile der Cloud nutzen, ohne sich den genannten Nachteilen auszuliefern?

Kubernetes als Abstraktions-Layer

Eine Lösung liegt in der Nutzung von Kubernetes. Es wurde entwickelt, um containerisierte Anwendungen effizient in verschiedenen Umgebungen zu orchestrieren – ob on-premises, in der Public Cloud oder in hybriden Szenarien. Dabei abstrahiert Kubernetes die zugrunde liegende Infrastruktur, sodass Anwendungen weitgehend unabhängig vom Betreiber laufen können.

Ursprünglich von Google stammend, wird Kubernetes seit einigen Jahren durch die Cloud Native Computing Foundation CNCF weiterentwickelt. Die CNCF ist Bestandteil der Linux Foundation und zählt viele grosse Firmen wie Google, Alibaba, Microsoft, Ericsson, Amazon, VMWare etc. aus Amerika, Europa und Asien zu ihren Mitgliedern. Damit ist sie sehr breit abgestützt und nicht den Entscheidungen einzelner Firmen oder Personen ausgeliefert. Kubernetes hat sich dadurch zum De-Facto Standard für die Container-Orchestrierung etabliert.

Vorteile von Kubernetes

Herausforderungen von Kubernetes

Nebst der vielen Vorteile bringt der Einsatz von Kubernetes aber auch seine Herausforderungen und Risiken mit sich:

Optionen zum Betrieb von Kubernetes

Es gibt unterschiedlichste Optionen, um Kubernetes zu betreiben. Die grundlegende Frage ist dabei erst mal, ob man dies an eine Public Cloud outsourcen möchte (und kann) oder ob man es on-premise haben möchte.

Public Cloud

Die einfachste Möglichkeit ist sicherlich, schlüsselfertige Kubernetes-Cluster bei einem globalen Cloud-Anbieter wie AWS, Azure oder auch regionalen Anbieter zu beziehen. Damit sind Setup und Betrieb schon weitgehendst abgedeckt. Dabei müssen aber folgende Punkte beachtet werden:

On-Premise

Die andere Möglichkeit ist, Kubernetes selbst zu betreiben und so gänzlich unabhängig zu bleiben. Dieser Weg ist mit mehr Hürden gespickt, bei deren Bewältigung sich in der Praxis folgende Massnahmen bewährt haben:

Daneben gibt es auch diverse Zwischenlösungen oder auch Mischformen. Was optimal ist, hängt weitgehend von den Rahmenbedingungen der Organisation und den Anforderungen ab.

Generelle Best Practices

Unabhängig von der Art des Clusters sind generell folgende Best Practices empfehlenswert:

Deployment von Applikationen

Hat man erst mal eine Kubernetes-Umgebung bereit, können nun die Applikationen bereitgestellt werden. Dafür erfüllen sie idealerweise über gewisse Voraussetzungen wie Zustandslosigkeit, Logging auf die Standard-Ausgaben, flexible Konfigurierbarkeit via Umgebungsvariablen oder Konfigurations-Dateien und Endpunkte für Health-Checks. Mit Frameworks wie Quarkus, .Net oder SpringBoot erstellte Web-Applikationen bringen diese Eigenschaften in der Regel schon mit.

Das eigentliche Deployment geschieht üblicherweise in folgenden Schritten:

  1. Containerisierung der Applikation
    Die einzelnen Bestandteile der Applikation werden in Images gepackt und in einer Image Registry abgelegt. Die Images enthalten die ausführbaren Dateien inklusive Bibliotheken und allfälliger Laufzeitumgebungen.
  2. Deployment-Manifest erstellen
    Mittels Manifests in der Form von YAML-Dateien wird Kubernetes mitgeteilt, wie die Images als Container deployed werden sollen. Es beschreibt auch, was wo persistiert wird und wie die Container untereinander oder mit der Aussenwelt kommunizieren dürfen. Oft werden diese Manifeste in konfigurierbaren Helm Charts bereitgestellt. Für sehr viele Standard-Applikation stehen bereits solche Charts zur Verfügung und können in eigene eingebunden werden.
  3. Installation der Charts
    Die Charts können nun in ein oder mehreren Kubernetes Cluster (z. B. pro Stage) installiert werden. Um ein sauberes Konfigurations-Management zu gewährleisten bietet sich der GitOps-Ansatz an. Dabei wird die gesamte Konfiguration in git verwaltet und durch Tools wie ArgoCD oder Flux in die Cluster synchronisiert.

Idealerweise wird gleich die CI/CD-Pipe entsprechend aufgebaut:

GitOps CI/CD-Pipeline

Allfällige Migration in einen anderen Cluster

Durch das oben beschriebene Deployment wurde nun also die Applikation «Kubernetes-Ready» gemacht. Unabhängig vom Cluster verrichtet die Orchestrierung ihre Arbeit und koordiniert das Zusammenspiel zwischen den Containern. Sie stellt auch Storage- und Netzwerkressourcen bereit.

Sofern man sich an Standards gehalten hat und nicht den Verlockungen von proprietären Erweiterungen erlegen ist, lässt sich eine Applikation durch wenige Anpassungen in einen anderen Kubernetes-Cluster migrieren. Üblicherweise sind das:

Diese Anpassungen erfolgen entweder direkt im GitOps-Repo, durch Neuinstallation von Charts mit geänderten Parametern oder durch Backup/Restore mit Mapping durch ein Tool wie z.B. Velero. Sie beschränken sich meist auf einzelne Zeilen.

Der zusätzliche Aufwand macht sich also bezahlt, in dem man so eine gewisse Unabhängigkeit geniesst und nicht auf Gedeih und Verderb einem Anbieter ausgeliefert ist.

Fazit

Kubernetes stellt eine leistungsfähige Abstraktionsschicht, um Risiken wie Vendor Lock-in zu vermeiden. Durch die Plattformunabhängigkeit, Standardisierung und Portabilität können Unternehmen flexibel bleiben und ihre IT-Strategie an wechselnde Anforderungen anpassen.

Allerdings sollte die Einführung von Kubernetes gut überlegt sein und geplant werden, um die damit verbundenen Herausforderungen erfolgreich zu meistern. Dabei gilt es stets, sich möglichst an die Standards zu halten und Kompromisse nur bewusst einzugehen. Organisationen, welche diese Hürden überwinden, profitieren aber langfristig von einer grösseren Unabhängigkeit in einer sich rasch ändernden Welt mit wechselnden Allianzen.

Kommentare

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter - aktuelle Angebote, exklusive Tipps und spannende Neuigkeiten

 Jetzt anmelden

Copyright © 2025 Noser Engineering AG – Alle Rechte vorbehalten.

NACH OBEN
Privacy Policy Cookie Policy
Zur Webcast Übersicht