Kubernetes ist inzwischen das Maß der Dinge für Entwickler, wenn es um Container-Orchestrierung geht. Das Open-Source-System von Google genießt hohes Ansehen, erhält umfassenden Support und entwickelt sich ständig weiter. Allerdings ist Kubernetes auch äußerst komplex sowie schwierig einzurichten und zu konfigurieren. Und damit nicht genug: Das Gros der der Arbeit wird dem Endbenutzer überlassen. Ein Alleingang ist deshalb nicht sonderlich empfehlenswert - stattdessen sollten Sie sich eine Container-Lösung suchen, die Kubernetes als (gewartete) Komponente beinhaltet.
Dieser Artikel wirft einen Blick auf die sechs besten Kubernetes-Distributionen, die sowohl das Orchestrierungssystem als auch Container-Tools enthalten.
Die 6 besten Kubernetes-Distributionen
Beachten Sie dabei, dass die folgende Auflistung keine speziellen Cloud-Services wie Amazon EKS oder Google Kubernetes Engine beinhaltet. Wir haben uns bei dieser Zusammenstellung auf Software-Distributionen konzentriert, die lokal oder als Cloud-gehostete Option verfügbar sind.
Canonical, Hersteller von Ubuntu Linux, hat auch seine eigene Kubernetes-Distribution im Angebot. Eines der Hauptargumente für Canonical Kubernetes ist das weithin respektierte, gut verstandene und häufig eingesetzte Ubuntu-Linux-Betriebssystem. Laut Canonical funktioniert sein Stack in jeder Cloud- oder On-Premise-Installation und unterstützt sowohl CPU- als auch GPU-basierte Workloads. Zahlende Kunden können ihren Kubernetes-Cluster von Canonical-Ingenieuren remote managen lassen.
Die Kubernetes-Distribution von Canonical ist auch in einer Miniaturversion - Microk8s - erhältlich. Entwickler und Kubernetes-Einsteiger können die auf einem Notebook oder Desktop installieren, um zu testen, zu experimentieren oder auch auf Low-Profile-Hardware erste produktive Ergebnisse zu erzielen.
Canonical betreibt gemeinsam mit Rancher Labs (mehr dazu später) die Kubernetes Cloud Native Platform, die die Distribution von Canonical mit der Container-Management-Plattform von Rancher kombiniert. Die Idee dahinter: Mit Kubernetes die in jedem Cluster laufenden Container zu managen und Rancher zu nutzen, um mehrere Kubernetes-Cluster zu verwalten. Die Cloud Native Platform ist ab Rancher 2.0 verfügbar.
Für viele Menschen ist Docker immer noch ein Synonym für Container. Seit 2014 hat Docker sein eigenes Clustering- und Orchestrierungssystem namens Swarm, das bis vor kurzem ein Kubernetes-Konkurrent war.
Im Oktober 2017 kündigte Docker schließlich an, Kubernetes - in seiner unveränderten Form - als Standardpaket sowohl in die Docker Community Edition als auch in Docker Enterprise 2.0 und spätere Editionen zu integrieren. Mit Docker Enterprise 3.0 hielt der Kubernetes Service Einzug, eine Kubernetes-Integration, die die Kubernetes-Versionen zwischen Entwickler-Desktops und Produktions-Deployments konsistent hält.
Dabei sollten Sie beachten, dass Docker Desktop jeweils mit der aktuellsten Version von Kubernetes ausgeliefert wird. Das ist zwar nützlich, um damit auf einem lokalen Rechner zu starten, aber nicht, wenn Sie lokale Cluster erstellen wollen, die frühere Kubernetes-Versionen benötigen (z. B. einen reduzierten Klon eines Produktions-Clusters).
Die Tanzu Application Platform von VMware kommt zum Einsatz, um moderne Cloud-Native-Anwendungen mit Kubernetes auf mehreren Infrastrukturen zu erstellen. Mit Tanzu Kubernetes Grid (TKG) kommt Googles Container-Orchestrierungssystem ins Spiel.
Das Herzstück von TKG ist eine zertifizierte Kubernetes-Distribution mit einer Integration für vSphere 8 und andere aktuelle VMware-Produkte. Zwar sollten alle containerisierten Workloads auf TKG laufen, Anwendungen, die höhere Abstraktionsebenen als die Kubernetes-Metaphern nutzen können, können aber auch auf den Tanzu Application Service PaaS (früher Pivotal Application Service) zurückgreifen. Wenn Sie die granulare Kontrolle über Ressourcen benötigen, die Kubernetes bietet, empfiehlt sich TGK - für allgemeinere Workloads sollte Tanzu Application Service ausreichen.
Die Mirantis Kubernetes Engine (MKE), früher unter dem Namen Docker Enterprise UCP (Universal Control Plane) bekannt, ist enger an ihre Ursprünge in Docker angelehnt als einige der anderen hier gelisteten Kubernetes-Distributionen. Zum einen können Sie damit sowohl Docker- als auch Docker-Swarm-Container managen. Das ist praktisch, weil Swarm von Natur aus weniger komplex ist als Kubernetes. MKE ist ein reines Linux-Produkt, bietet aber keine Linux-Distribution zur Installation an. Mirantis empfiehlt die Verwendung von Ubuntu Server, entweder auf Bare Metal oder in einer VM.
Für diejenigen, die ein möglichst minimales Kubernetes-Erlebnis anstreben, bietet Mirantis auch k0s an, eine Kubernetes-Distribution, die als einzelne Binärdatei geliefert wird und auf Systemen mit nur einem CPU-Kern, 1 GB RAM und ein paar Gigabyte Festplattenspeicher läuft. Darüber hinaus hat der Anbieter auch Lens im Angebot, eine quelleoffene Laufzeitumgebung für Kubernetes Management. Diese funktioniert übrigens mit jeder Kubernetes-Distribution, nicht nur mit MKE.
Rancher Labs hat Kubernetes mit Version 2.0 in seine Container-Management-Plattform Rancher integriert. Rancher wird auch mit einer eigenen Kubernetes-Distribution, der Rancher Kubernetes Engine (RKE), ausgeliefert. RKE soll es erleichtern, Kubernetes-Cluster einzurichten und an bestimmte Umgebungen anzupassen, ohne dabei Upgrades zu behindern. Bei einem Projekt wie Kubernetes, das einem so rasanten Wandel unterliegt, ein wichtiger Aspekt. RKE zeichnet sich auch dadurch aus, dass es Container als Teil des Build- und Upgrade-Prozesses verwendet. Der einzige Teil des zugrundeliegenden Linux-Systems, mit dem Rancher interagiert, ist die Container-Engine.
Rancher bietet auch eine minimale Kubernetes-Distribution namens K3s an. K3s wurde für den Einsatz in kleinreen Umgebungen optimiert und benötigt lediglich 512 MB RAM pro Serverinstanz und 200 MB Festplattenspeicher. Um das zu erreichen, wird auf alle Legacy-, Alpha-Grade- und unwesentlichen Funktionen sowie viele weniger häufig verwendete Plugins verzichtet (letztere können jedoch bei Bedarf wieder hinzugefügt werden).
Red Hats PaaS-Produkt OpenShift, nutzte ursprünglich Heroku-Buildpack-ähnliche "Cartridges", um Anwendungen zu verpacken, die dann in Containern namens "Gears" bereitgestellt wurden. Mit dem Aufstieg von Docker wurde OpenShift überarbeitet, um den neuen Standard für Container-Images und -Laufzeiten zu unterstützen. Zwangsläufig übernahm Red Hat schließlich auch Kubernetes als Orchestrierungs-Technologie für OpenShift.
OpenShift wurde entwickelt, um Abstraktion und Automatisierung für alle Komponenten in einem PaaS-Angebot zu bündeln. Diese Abstraktion und Automatisierung erstreckt sich auch auf Kubernetes, das immer noch erheblichen Verwaltungsaufwand nach sich zieht. Mit OpenShift lässt sich dieser Aufwand im Rahmen der größeren PaaS-Bereitstellungsaufgabe verringern.
Die aktuelle Version OpenShift 4 enthält einige Verbesserungen, die von Red Hat Enterprise Linux CoreOS übernommen wurden, etwa die unveränderliche Infrastruktur der Plattform. Außerdem ermöglicht sie Kubernetes Operators eine tiefergehende, benutzerdefinierte Automatisierung. (fm)
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation InfoWorld.