Kubernetes wird oft als das "Linux der Cloud" bzw das "Betriebssystem der Cloud" bezeichnet und diese Beschreibung trifft das Thema genau: Kubernetes (abgekürzt "K8S") ermöglicht es, Anwendungen losgelöst von konkreter Hardware zu betreiben.
Klassischer Serverbetrieb erfordert es, einen (oder mehrere) Server auf den Betrieb der Anwendung hin zu dimensionieren, aufzusetzen und dann die Anwendung darauf einzurichten. Werden zusätzliche Ressourcen benötigt, müssen zusätzliche Server eingerichtet werden, soll herunterskaliert werden, war diese Arbeit wieder umsonst. Die moderne Cloud ermöglicht es zwar, Server auf Knopfdruck zu vergrößern oder zu verkleinern, man ist aber doch immer an konkrete (physische oder virtuelle) Hardware gebunden.
Kubernetes abstrahiert die Anwendung von der Hardware: eine Kubernetes Installation wird immer als Cluster betrieben, die Gesamtheit der Server bildet einen Pool, der CPU, Memory und Storage Ressourcen bereitstellt. Werden zusätzliche Ressourcen benötigt, werden einfach zusätzliche Server zugeschaltet. Da die Anwendung nicht direkt auf diesen Servern läuft (dazu gleich mehr), fällt zusätzlicher Installationsaufwand weg. Geht die Last zurück können die zusätzlichen Server dann ebenso einfach wieder entfernt werden.
Die Anwendung selbst wird vom Entwickler in Form von fertigen Container Images bereitgestellt, die bereits fertig eingerichtet sind und alle benötigten Bibliotheken und sonstigen Abhängigkeiten bereits beinhalten. Externe Abhängigkeiten (wie zB Datenbanken, Caches oder Load Balancer) werden vom Entwickler in einer Textdatei beschrieben und gemeinsam mit den Images für Kubernetes bereitgestellt.
Das macht es dem Cluster leicht, die Anwendung zu starten und bei Bedarf zu skalieren, indem einfach zusätzliche Kopien der Anwendung auf weiteren Servern gestartet werden.
Kubernetes hat den Ruf ein sehr mächtiges aber auch sehr kompliziertes Werkzeug zu sein. Wir erlauben uns, das etwas differenzierter zu sehen: Natürlich ist eine gewisse Komplexität unvermeidlich, aber da Kubernetes seine "Magie" mit existierenden Mitteln des Linux Standard-Kernels und seiner Werkzeuge vollbringt, ist der Betrieb eines Kubernetes Cluster nach einer gewissen Einarbeitungszeit für erfahrene Admins keine "Hexerei".
Gerne beraten wir Sie zu den Themen rund um Container, Kubernetes und "Cloud Native" und übernehmen auch den Betrieb Ihrer Cluster, damit Sie sich auf die Entwicklung der Anwendung konzentrieren können.