Business-IT
07.10.2019
Cloud-Orchestrierung
1. Teil: „Der große Vorteil ist: Kubernetes läuft überall“

Der große Vorteil ist: Kubernetes läuft überall

Cloud OrchestrierungCloud OrchestrierungCloud Orchestrierung
LeoWolfert / shutterstock.com
System Engineer Bastian Hofmann ist ein überzeugter Anhänger von Kubernetes. Die Open-Source-Lösung ist für ihn zusammen mit Docker quasi der Standard für Container und deren Orchestrierung.
  • Bastian Hofmann: Senior System Engineer bei SysEleven
    Quelle:
    Bastian Hofmann
Das DevOps-Konzept ist eine wesentliche Säule agiler Entwicklung. Damit es aber optimal zum Tragen kommt, ist eine technologische Grundlage notwendig, mit der sich die Herausforderungen von Multi-Cloud-Umgebungen meistern lassen und Projekte über Plattformen hinweg schnell aufgesetzt und aktualisiert werden können. Als Quasi-Standard für Container und deren Orchestrierung haben sich Docker und Kubernetes herauskristallisiert.
Bastian Hofmann, Senior System Engineer beim Managed-Hosting-Anbieter SysEleven, erklärt zum einen, was Kubernetes ist und welche Rolle es spielt, zum anderen, welche Unternehmen diese Open-Source-Lösung brauchen und wie sie am besten in Kubernetes einsteigen.
com! professional: Wie würden Sie jemandem Kubernetes beschreiben, der zwar schon davon gehört hat, aber nicht ge­nau weiß, was es ist und wozu ein Unternehmen es einsetzen könnte?
Bastian Hofmann: Kubernetes hilft dabei, seine Anwendungen und Services in isolierten Containern zu deployen und zu skalieren. Durch die standardisierte Kubernetes-API gibt es dazu viele nützliche Integrationen in CI/CD- und Monitoring- Systeme, die viel Zeit und Arbeit sparen.
com! professional: Kubernetes gibt es seit 2014 und hat relativ rasch viele Fans gewonnen. Was ist an Kubernetes so spannend? Und was hat Kubernetes, was andere Lösungen nicht haben?
Hofmann: Kubernetes wurde sehr stark von Borg beeinflusst, dem internen Cluster-Management-Tool von Google. Dadurch war es von Anfang an durchdacht und sehr flexibel. Insbesondere das Design und die einfache Erweiterbarkeit der API sind eine der großen Stärken, die Kubernetes zukunftssicher machen, da man es einfach auf neue Entwicklungen und Gegebenheiten anpassen kann. Es war auch hilfreich, dass es durch die Integration in die Google Cloud Platform von Anfang an einen großen Nutzer des Projekts gab und viele Entwickler daran gearbeitet haben. Dadurch haben auch viele andere Firmen und Service-Provider mit ähnli­­-chen Cluster-Management-Anforderungen angefangen, einerseits Kubernetes einzusetzen, aber auch am Projekt direkt oder an Integrationen in andere Tools zu arbeiten.
Bild: DevOpsWorld Conference
DevOpsWorld Conference
Am 14. November findet im Rahmen der von CloserStill Media veranstalteten TechWeek Frankfurt die DevOpsWorld Conference statt. Auf dieser von com! professional verantworteten Konferenz sprechen versierte Experten über die Notwendigkeit und die Herausforderungen des DevOps-Konzepts und geben mit Berichten aus der Praxis wertvolle Hilfestellungen.
Die Vorträge sind aufgeteilt in zwei Tracks: „Container & Cloud“ sowie „Praxis & Prozesse“. Sie beginnen um 9 Uhr in den Konferenzräumen der Ebene 4C. Ende der Veranstaltung ist um 17 Uhr.
Unser Interviewpartner Bastian Hofmann spricht zum Thema „Deploying your first Microservice application to Kubernetes“
com! professional: Wie reif ist Kubernetes heute? Was fehlt ihm noch beziehungsweise was hat es noch für Schwächen?
Hofmann: Kubernetes kann stabil und hochverfügbar betrieben werden und wird von zahlreichen Firmen, klein wie groß, produktiv eingesetzt. Es ist eines der aktivsten Open-Source- Projekte, hat einen verlässlichen Release- und Support-Zy­klus und es gibt ein großes Ökosystem mit zahlreichen Tools und Integrationen drumherum. Es spricht also nichts dagegen, Kubernetes einzusetzen.
2. Teil: „Kubernetes und Docker“

Kubernetes und Docker

com! professional: Kubernetes wird oft in Zusammenhang mit Docker genannt. Wer braucht da wen? Ist das so etwas wie ein Dream-Team oder eine Win-win-Verbindung?
Hofmann: Kubernetes benutzt Docker als Standard-Container-Runtime, das heißt, es kümmert sich darum, wo und wie Docker-Container im Cluster gestartet, betrieben und skaliert werden. Es ist aber auch
  • Reichhaltiges Ökosystem: Eine lebendige Community zählt zu den besonderen Stärken von Kubernetes.
    Quelle:
    com! professional / shutterstiock.com
der Einsatz alternativer Container-Runtimes wie CRI-O oder Frakti möglich. Diese stecken allerdings noch eher in den Kinderschuhen.
com! professional: Gibt es noch konkurrierende Lösungen? Oder ist Kubernetes bereits ein De-facto-Standard für die Container-Orchestrierung?
Hofmann: Es gibt zwei Arten von alternativen Container-Orchestrierungslösungen: zum einen andere Open-Source-Projekte, zum Beispiel Docker Swarm, Marathon oder Hashicorp Nomad. Hier hat sich allerdings ganz klar Kubernetes als größeres, flexibleres, stabileres, performanteres und vielseitigeres Projekt durchgesetzt. Zum anderen gibt es eine ganze Reihe von Lösungen, die intern von großen Firmen vor oder zeitgleich zu Kubernetes entwickelt worden sind, etwa Peleton von Uber oder Titus von Netflix. Sie werden dort auch weiterentwickelt. Da eine Migration auf Kubernetes aber sehr aufwendig und teuer wäre, werden diese Lösungen fast nur von diesen Firmen eingesetzt.
com! professional: Kubernetes wurde ursprünglich von Google entwickelt, ist mittlerweile aber Open Source. Wie unabhängig ist es von Google tatsächlich?
Hofmann: Google ist immer noch sehr aktiv im Kubernetes-Projekt. Das Projekt selbst ist aber nicht von Google abhängig, sondern wird von der Cloud Native Computing Foundation verwaltet. Bei der Weiterentwicklung des Projekts steuert Google aktuell etwa 30 Prozent der Commits bei, gefolgt von Firmen wie Red Hat, VMware, Microsoft, Intel und IBM. Zudem stammen 25 Prozent der Commits von Entwicklern, die unabhängig von diesen großen Firmen sind.
com! professional: Welche Vorteile hat es, dass Kubernetes Open Source ist? Stichwort Vendor-Lock-in.
Hofmann: Ein großer Vorteil von Kubernetes ist, dass es überall läuft: vom eigenen Laptop, auf einem Raspberry Pi, auf der eigenen Bare-Metal-Infrastruktur sowie auf allen Cloud-Providern, bei vielen sogar als komplett gemanagter Service.
Bei allen Installationen bleibt die Kubernetes-API zum größten Teil gleich, wodurch der Vendor-Lock-in massiv reduziert wird und es wesentlich einfacher wird, Workloads lokal zu testen oder zu einem anderen Cloud-Provider zu migrieren. Oder man betreibt seine Applikation direkt in Kubernetes-Clustern verschiedener Provider, um die Verfügbarkeit zu erhöhen.
com! professional: Welche Unternehmen brauchen Kubernetes denn? Welche sollten besser die Finger davon lassen?
Hofmann: Wenn man nur eine kleine, recht statische Firmen-Webseite mit ein oder zwei Entwicklern oder einen privaten Blog betreibt, ist Kubernetes definitiv nicht sinnvoll. Sobald mehrere Services dazukommen oder man etwas mehr Traffic hat, ergibt der Einsatz von Kubernetes Sinn. Hier profitiert man dann von den eingebauten Skalierungs-, Monitoring- und Automatisierungslösungen.
3. Teil: „Der Einstieg in Kubernetes“

Der Einstieg in Kubernetes

com! professional: Kubernetes ist sehr mächtig, aber auch sehr umfangreich. Wie sollte man beim Einstieg am besten vorgehen? Was braucht ein Unternehmen, das mit Kubernetes loslegen will?
Hofmann: Man muss auf jeden Fall die Mitarbeiter, die mit Kubernetes in Kontakt kommen, schulen. Kubernetes nimmt zwar viel Arbeit ab, man muss aber die Konzepte und Abstraktionen dafür verstehen,
  • Trend: Viele Unternehmen sind über die Experimentierphase hinaus und setzen Kubernetes schon produktiv ein.
    Quelle:
    Platform9 (n = 500)
um mit Kubernetes erfolgreich zu arbeiten. Das kann zum Beispiel über Konferenzen, Workshops oder Online-Kurse geschehen.
Wenn man zu Kubernetes migrieren möchte, ist es zudem sinnvoll, nicht alles auf einmal umzuziehen, sondern erst einmal mit ein paar internen Tools anzufangen. So kann man erste Erfahrungen sammeln, ohne dass bei etwaigen Fehlern direkt Endkunden betroffen sind.
com! professional: Kann ein Unternehmen Kubernetes selbst implementieren oder braucht man dafür Dienstleister?
Hofmann: Man kann Kubernetes definitiv auch selbst installieren und managen. Allerdings ist Kubernetes sehr mächtig und dadurch auch komplex. Insbesondere wenn der Cluster hochverfügbar sein muss und Cluster-Updates ohne Downtime durchgeführt werden sollen, braucht man ein dediziertes Team, das sich sehr gut mit dem Management von Kubernetes auskennt.
Deshalb ist der Einsatz von gemanagten Kubernetes-Clustern zu empfehlen. Diese werden von zahlreichen Cloud-Providern und Hostern angeboten, etwa in Google Cloud Platform, Amazon AWS, Microsoft Azure, Digital Ocean, IBM Cloud oder in Deutschland von SysEleven MetaKube. Eine Zertifizierung der Cloud Native Computing Foundation stellt dabei sicher, dass sich alle Angebote standardkonform verhalten.
com! professional: Welche Fehler werden beim Einsatz von Kubernetes immer wieder gemacht?
Hofmann: Das häufigste Problem, das ich sehe, ist, dass Anwendungen in Kubernetes nicht hochverfügbar deployt werden. Das heißt, man braucht eigentlich immer mehr als eine Instanz für jeden Service. Container sind weniger persistent als klassische Server oder VMs und verhalten sich beim Deployment ganz anders. In Kubernetes werden bei einem Deployment zwingend laufende Container mit der alten Version gestoppt und neue Container mit der neuen Version gestartet. Hat man hier nur einen Container für seinen Service am Laufen, gibt es eine kurze Downtime. Zudem kann Kubernetes zu jeder Zeit entscheiden, dass ein Container von einem Server auf einen anderen im Cluster umgezogen werden soll. Das bedeutet, dass man für einen stabilen Betrieb zwingend mehr als eine Instanz braucht. Dies ist aber auch im „klassischen“ Hosting der Fall ist und wird bei kurzlebigen Containern noch wichtiger werden.
com! professional: Braucht es für Kubernetes eine besondere Organisationsform? Welche Rolle spielt Kubernetes im Dev­Ops-Ansatz?
Hofmann: Kubernetes ist agnostisch, was bestimmte Organisationsformen betrifft. Man kann damit Dev-Ops-Konzepte umsetzen, bei denen jedes Team auch für das Deployment und den Betrieb seiner Applikationen verantwortlich ist. Genauso ist es möglich, dass dies von einem dezidierten Operations-Team übernommen wird. Das heißt, man kann sich so organisieren, wie es für das eigene Team und Produkt am besten passt.
com! professional: Sie halten auf der DevOpsWorld Conference in Frankfurt einen Vortrag mit dem Titel „Deploying your first Microservice application to Kubernetes“. Warum sollte man sich den anhören?
Hofmann: Der Talk gibt einen guten ersten Einblick, wie man eine Microservice-Applikation in Kubernetes deployen und die Vorteile bezüglich Skalierung und Monitoring-Integration nutzen kann.

mehr zum Thema