Fragen und Antworten zu Kubernetes

Finden Sie hier einige Informationen, die den Siegeszug von Kubernetes erläutern.

Heutzutage erwarten Benutzer von Webservices, dass Anwendungen rund um die Uhr performant zur Verfügung stehen. Entwickler, insbesondere im agilen Umfeld, wollen in kurzen Zeitabständen neue Versionen von Anwendungen bereitstellen (deployen). Containerisierte Software erleichtert es, diese Ziele zu erreichen. Eine Aktualisierung ist schnell und ohne Ausfallzeiten möglich. Kubernetes hilft dabei, die Container zu verwalten und sicherzustellen, dass Containeranwendungen immer dort laufen, wo und wann das Unternehmen es möchte. Sogenannte CI/CD (Continuous Integration / Continuous Deployment) und somit durchgängig agiles Arbeiten sind möglich.

Kubernetes (Abkürzung: K8s) ist ein quelloffenes System, welches häufig zur Automatisierung der Bereitstellung, Skalierung und Verwaltung von containerisierten Anwendungen verwendet wird.

Auf kubernetes.io heißt es: „Kubernetes bietet eine containerzentrierte Managementumgebung. Es koordiniert die Computer-, Netzwerk- und Speicherinfrastruktur im Namen der Benutzer-Workloads. Dies bietet einen Großteil der Einfachheit von Platform as a Service (PaaS) mit der Flexibilität von Infrastructure as a Service (IaaS) und ermöglicht die Portabilität zwischen Infrastrukturanbietern.“

Kubernetes koordiniert hochverfügbare Cluster von (virtuellen) Computern, die miteinander verbunden sind und als eine Einheit arbeiten. Die Abstraktionen in Kubernetes ermöglichen es, containerisierte Anwendungen in einem Cluster bereitzustellen, ohne sie spezifisch an einzelne Maschinen zu binden. Um dieses neue Bereitstellungsmodell nutzen zu können, müssen Anwendungen so aufgebaut werden, dass sie von einzelnen Hosts entkoppelt sind: Sie werden in Container verpackt. Containerisierte Anwendungen sind flexibler und verfügbarer als in früheren Bereitstellungsmodellen.

Kubernetes gruppiert Container in logische Einheiten (Pods und Cluster), aus denen sich eine Anwendung zusammensetzt, um die Verwaltung und Erkennung zu erleichtern.

Kubernetes ermöglicht es, die Infrastruktur on-premises oder Hybrid- und Public Cloud-Umgebungen zu nutzen. So kann Workload mühelos dorthin verschoben werden, wo es wichtig ist.

Pods sind die kleinsten einsetzbaren Einheiten, die in Kubernetes erstellt und verwaltet werden können. Ein Pod ist eine Gruppe von einem oder mehreren Containern mit gemeinsam genutzten Speicher- und Netzwerkressourcen und einer Spezifikation für die Ausführung der Container. Die Ressourcen eines Pods befinden sich immer auf dem gleichen (virtuellen) Server, werden gemeinsam geplant und in einem gemeinsamen Kontext ausgeführt. Ein Pod kann neben Anwendungs-Containern auch sogenannte Initialisierungs-Container enthalten, die beim Starten des Pods ausgeführt werden. Es können auch kurzlebige/ephemere Container zum Debuggen gestartet werden, wenn dies der Cluster anbietet.

Container sind im Gegensatz zu virtuellen Maschinen nicht auf ein bestimmtes Betriebssystem beschränkt. Sie können Betriebssysteme gemeinsam nutzen und überall ausgeführt werden.

Ein Kubernetes-Cluster ist eine Gruppe sogenannter Knoten, auf denen containerisierte Anwendungen ausgeführt werden. Dabei besteht ein Cluster mindestens aus einer Control Plane (Steuerungsebene, die mehrere Master-Komponenten beinhaltet) und mindestens einem Worker-Node. Letzterer stellt die Funktionalitäten der Applikation bereit. Knoten sind physische oder virtuelle Maschinen, die aus der Master-Ebene heraus administriert und gesteuert werden.

Der Cluster bildet einen wichtigen Vorteil von Kubernetes: Es ergibt sich die Möglichkeit, Container auf verschiedenen Maschinen zu planen und auszuführen, ob physisch oder virtuell, lokal oder in der Cloud. Kubernetes-Container sind nicht an einzelne Maschinen gebunden. Sie werden vielmehr im gesamten Cluster abstrahiert.

Seine Leistungsstärke erhält Kubernetes durch die hochgradige Automatisierung. Durch API-gesteuerte Prozesse kann die volle Compute Power ausgespielt werden.

Da die Kontrollebene in Kubernetes ständig den Ist-Zustand des Systems mit seinem Soll-Zustand abgleicht, reagieren die Kontrollinstanzen bei Abweichungen unmittelbar. Automatisiert werden beispielsweise fehlerbehaftete Knoten gestoppt und funktionstüchtig neu gestartet. Diesen Prozess nennt man auch Resilienz oder Selbstheilung des Kubernetes-Systems.

Ähnlich sieht es aus, wenn bestimmte Anwendungsteile mehr Rechenleistung benötigen. Automatisch erhalten sie weitere Worker-Nodes zur Verfügung gestellt, um die Nachfrage zu bedienen.

Moderne Virtualisierungstechnologie macht dies alles dank Infrastructure as Code (IaC) möglich.

Kubernetes-Umgebungen stellen hohe Anforderungen an die IT.

Daher wird Kubernetes weltweit meist als Kubernetes as a Service angeboten.

Uptime IT geht noch einen Schritt weiter und bietet Managed Kubernetes an. Dabei übernehmen wir auch Services an Ihrer Workload.