Kubernetes wird häufig als „Betriebssystem für die Cloud“ bezeichnet und ist eine Open-Source-Plattform für die Verwaltung von Clustern containerisierter Anwendungen und Dienste. Kubernetes wurde 2014 von den Google-Ingenieuren Joe Beda, Brendan Burns und Craig McLuckie entwickelt und kurz darauf als Open-Source-Lösung bereitgestellt. Es entwickelte sich bald zu einem beliebten nativen Cloud-Ökosystem. Heute wird Kubernetes – was im Altgriechischen „Steuermann“ oder„Pilot“ bedeutet – von der Cloud Native Computing Foundation (CNCF) verwaltet, einem Arm der Linux Foundation.
Kubernetes war das erste abgeschlossene Projekt der CNCF und wurde zu einem der am schnellsten wachsenden Open Source-Projekte überhaupt. Mehr als 2.300 Personen haben bis jetzt an Kubernetes mitgewirkt. Es wird nun in vielen großen und kleinen Unternehmen verwendet, einschließlich der Hälfte der Fortune 100-Firmen.
Zunächst einige der wichtigsten Begriffe zu Kubernetes. Auf der Seite „Standardisiertes Kubernetes-Glossar“ ist eine umfassendere Liste verfügbar. Sie können auch das Kubernetes-Cheat Sheet verwenden, das eine Liste der häufig verwendeten kubectl-Befehle und -Flags enthält.
Eine Gruppe von Maschinen, die einzeln als Knoten bezeichnet werden und zur Ausführung von Containeranwendungen verwendet werden, die von Kubernetes verwaltet werden.
Ist entweder ein virtueller oder physischer Rechner. Ein Cluster besteht aus einem Masterknoten und mehreren Worker-Knoten.
Ein Image, das Software und ihre Abhängigkeiten enthält.
Ist ein einzelner Container oder eine Gruppe von Containern, die auf Ihrem Kubernetes-Cluster ausgeführt werden.
Ist ein Objekt, das replizierte Anwendungen verwaltet, die durch Pods dargestellt werden. Pods werden auf den Knoten eines Clusters bereitgestellt.
Stellt sicher, dass eine angegebene Anzahl von Podreplikaten gleichzeitig ausgeführt wird.
Beschreibt den Zugriff auf Anwendungen, die durch eine Gruppe von Pods dargestellt werden. Services beschreiben in der Regel Ports und Load Balancer und können zur Kontrolle des internen und externen Zugriffs auf ein Cluster verwendet werden.
KubeCon ist die jährliche Konferenz für Entwickler und Nutzer von Kubernetes. Seit der ersten KubeCon im Jahr 2015 mit 500 Teilnehmern hat sich die Veranstaltung zu einem wichtigen Ereignis für die Cloud-Community entwickelt. 2019 zog die KubeCon in San Diego, Kalifornien, 12.000 Entwickler und Site Reliability Engineers an, die den Erfolg des Open-Source-Ökosystems rund um die Kubernetes-Cloud-Orchestrierungsplattform feierten.
Da Entwickler zunehmend Software für eine Vielzahl von Rechenumgebungen mit unterschiedlichen Clouds, Testumgebungen, Laptops, Geräten, Betriebssystemen und Plattformen bereitstellen, hat das Problem, Software zuverlässig ausführen zu können, größte Bedeutung erlangt. Hier kommen Container ins Spiel: Sie bündeln eine Anwendung mit der gesamten Laufzeitumgebung. In diesem Sinne sind Container eine Form der Virtualisierung, denn sie stellen eine „Blase“ bereit, in der die Anwendung ausgeführt werden kann, indem sie dabei die richtigen Bibliotheken, Abhängigkeiten und Betriebssysteme miteinbeziehen. Container sind jedoch kleiner als virtuelle Maschinen, da sie nur die Ressourcen beinhalten, welche die Anwendung benötigt, und nicht mehr.
Während es Linux-Container bereits seit 2008 gibt, war es das Aufkommen der Docker-Container im Jahr 2013, die das Konzept letztlich weithin bekannt gemacht hat. Ähnlich schuf das explosionsartige Interesse am Deployment containerisierter Anwendungen – Anwendungen, die alles enthielten, was sie zur Ausführung benötigten – letztlich ein neues Problem: die Verwaltung von Tausenden Containern. Kubernetes koordiniert automatisch den Container-Lebenszyklus und verteilt die Container über die Hosting-Infrastruktur hinweg. Kubernetes skaliert Ressourcen je nach Bedarf nach oben oder unten. Es sorgt für Bereitstellungen, Planungen und Löschungen und überwacht den Zustand der Container.
Die Schlüsselkomponenten von Kubernetes sind Cluster, Knoten und die Steuerebene. Cluster enthalten Knoten. Jeder Knoten umfasst einen Satz mit mindestens einem Arbeitscomputer. Die Knoten hosten Pods, die Elemente der bereitgestellten Anwendung enthalten. Die Steuerebene verwaltet die Knoten und Pods im Cluster, häufig über viele Computer hinweg, und stellt so die Hochverfügbarkeit sicher.
Die Steuerebene enthält Folgendes:
Die Knotenkomponenten umfassen:
Mit Containern können Sie sicher sein, dass Ihre Anwendungen mit allem gebündelt sind, was sie zur Ausführung benötigen. Wenn Sie dann Container hinzufügen – die häufig Microservices beinhalten –, können Sie diese mithilfe von Kubernetes automatisch verwalten und verteilen.
Mit Kubernetes können Unternehmen:
Automatisch skalieren | Bereitstellungen je nach Bedarf hoch oder runterfahren. |
Dienste finden | Finden Sie containerisierte Dienste über die DNS oder IP-Adresse. |
Lasten ausgleichen | Stabilisieren Sie die Bereitstellung, indem Sie den Netzwerkverkehr verteilen. |
Storage verwalten | Wählen Sie einen lokalen oder einen Cloud-Speicher. |
Versionen kontrollieren | Wählen Sie die Arten von Containern aus, die Sie ausführen möchten. Und entscheiden Sie, welche Sie mithilfe eines neuen Images oder durch neue Containerressourcen ersetzen wollen. |
Die Sicherheit gewährleisten | Aktualisieren Sie sicher Passwörter, OAuth-Tokens und SSH-Schlüssel für bestimmte Container-Images. |
Kubernetes ermöglicht zwar eine hochgradige Zusammenstellbarkeit und kann jede Art von Anwendung unterstützen, allerdings ist es oft schwer zu verstehen und zu verwenden. Wie einige CNCF-Mitglieder angemerkt haben, ist Kubernetes nicht immer die passende Lösung für eine bestimmte Arbeitslast. Deswegen enthält das Kubernetes-Ökosystem eine Reihe spezifischer nativer Cloud-Tools, die Unternehmen zur Lösung spezifischer Workload-Probleme erstellt haben.
Kubernetes stellt Container aber keinen Quellcode bereit und erstellt auch keine Anwendungen. Für die Protokollierung sowie für Middleware, Überwachung, Konfiguration, CI/CD und viele andere Produktionsaktivitäten benötigen Sie daher zusätzliche Tools. Dennoch muss festgehalten werden, dass Kubernetes erweiterbar ist und sich für eine Vielzahl von Anwendungsfällen – von Düsenjets bis zum maschinellen Lernen – als geeignet erwiesen hat. Tatsächlich haben Cloud-Anbieter wie Oracle, Google, Amazon Web Services und andere, die Erweiterbarkeit von Kubernetes genutzt, um ein verwaltetes Kubernetes zu erstellen. Hierbei handelt es sich um Dienste, welche die Komplexität reduzieren und so die Entwicklerproduktivität steigern.
Unsere Cloud Infrastructure Container Engine for Kubernetes ist ein entwicklerfreundlicher, verwalteter Service, mit dem Sie Ihre Containeranwendungen in der Cloud bereitstellen können. Nutzen Sie die Container Engine for Kubernetes, wenn Ihr Entwicklungsteam native Cloud-Anwendungen zuverlässig erstellen, bereitstellen und verwalten möchte. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen erfordern, und Container Engine for Kubernetes stellt sie in einem vorhandenen Cloud Infrastructure-Mandanten bereit.
Auch wenn Sie keinen verwalteten Kubernetes-Service verwenden müssen, ist unsere Cloud Infrastructure Container Engine for Kubernetes eine einfache Möglichkeit, hochverfügbare Cluster mit der Kontrolle, Sicherheit und vorhersehbaren Performance von Oracle Cloud Infrastructure auszuführen. Die Container Engine for Kubernetes unterstützt sowohl Bare Metal als auch virtuelle Maschinen als Knoten und ist von der CNCF zertifiziert worden. Sie erhalten auch alle Kubernetes-Updates und bleiben mit dem CNCF-Ökosystem kompatibel, ohne dass für Sie irgendwelcher zusätzlicher Aufwand anfällt.
Oracle ist ein Platin-Mitglied der Cloud Native Computing Foundation (CNCF), einer Open Source-Community, die mehrere Dutzend Entwicklungsprojekte für Software unterstützt, die nach ihrem Entwicklungsstand organisiert sind. Die abgeschlossenen Projekte (Kubernetes, Prometheus, Envoy, CoreDNS, containerd, Fluentd, Jaeger, Vitess, TUF und Helm) haben sich für bestimmte Aspekte nativer Cloud-Entwicklungen als unverzichtbar erwiesen.
Kubernetes verfügt über ein großes Ökosystem unterstützender Projekte, die sich in seinem Umfeld entwickelt haben. Diese Landschaft kann beängstigend wirken und die Suche nach Antworten auf einfache Fragen kann zu einem endlosen Unterfangen werden. Aber die ersten Schritte auf diesem Weg sind dennoch einfach. Und von dort aus können Sie je nach Bedarf fortgeschrittene Konzepte erkunden. Erfahren Sie, wie Sie:
Entwickler, die ihr erste Kubernetes-Projekt starten möchten, können sich unser Entwicklerportal ansehen, in dem sie lernen können, wie sie ihre erste Arm-App auf Kubernetes erstellen oder ein Kubernetes-Cluster mit Cloud-Shell bereitstellen.