Was ist Kubernetes?

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.

Kubernetes 101 – Wichtige Begriffe

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.

Cluster

Eine Gruppe von Maschinen, die einzeln als Knoten bezeichnet werden und zur Ausführung von Containeranwendungen verwendet werden, die von Kubernetes verwaltet werden.

Knoten

Ist entweder ein virtueller oder physischer Rechner. Ein Cluster besteht aus einem Masterknoten und mehreren Worker-Knoten.

Cloud-Container

Ein Image, das Software und ihre Abhängigkeiten enthält.

Pod

Ist ein einzelner Container oder eine Gruppe von Containern, die auf Ihrem Kubernetes-Cluster ausgeführt werden.

Bereitstellung

Ist ein Objekt, das replizierte Anwendungen verwaltet, die durch Pods dargestellt werden. Pods werden auf den Knoten eines Clusters bereitgestellt.

Replicaset

Stellt sicher, dass eine angegebene Anzahl von Podreplikaten gleichzeitig ausgeführt wird.

Service

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.

Was ist KubeCon?

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.

Was versteht man unter Kubernetes-Containern?

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.

Kubernetes im Vergleich zu Docker

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.

Was sind die Komponenten von Kubernetes?

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.

Was versteht man unter Kubernetes

Die Steuerebene enthält Folgendes:

  • Kubernetes-API-Server: stellt die Programmierschnittstelle (API) zur Kontrolle von Kubernetes bereit
  • etcd: ein Key-Value Store für Cluster-Daten
  • Kubernetes-Scheduler: gleicht neue Pods mit verfügbaren Knoten ab
  • Kubernetes-Controller-Manager: Führt eine Reihe von Prozessen aus, um Knotenfehler zu verwalten, die Replikation zu steuern, Services und Pods über Endpunkte zu verbinden sowie Konten und Zugriffstoken zu kontrollieren
  • Cloud-Controller-Manager: unterstützt die Verwaltung von APIs bestimmter Cloud-Anbieter in Bezug auf Aspekte wie bestimmte Infrastrukturrouten und Load Balancing

Die Knotenkomponenten umfassen:

  • kubelet: ein Agent, der überprüft, ob Container in einem Pod ausgeführt werden
  • Kubernetes-Netzwerkproxy: verwaltet Netzwerkregeln
  • Docker, containerd oder eine andere Art von Container-Laufzeit

Was sind die Vorteile von Kubernetes?

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.

Was sind die Herausforderungen bei der Verwendung von Kubernetes?

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.

Was versteht man unter verwaltetem Kubernetes?

Cloud Native und Kubernetes transformieren die Unterstützung von Farmern durch AgroScout.

Unsere Cloud-Infrastruktur Kubernetes Engine ist ein entwicklerfreundlicher, verwalteter Service, mit dem Sie Ihre Containeranwendungen in der Cloud bereitstellen können. Nutzen Sie die Kubernetes Engine, wenn Ihr Entwicklungsteam native Cloud-Anwendungen zuverlässig erstellen, bereitstellen und verwalten möchte. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen benötigen, und Kubernetes Engine stellt sie in einem vorhandenen Cloud Infrastructure-Mandanten bereit.

Auch wenn Sie keinen verwalteten Kubernetes-Service verwenden müssen, ist unsere Cloud Infrastructure Kubernetes Engine eine einfache Möglichkeit, hochverfügbare Cluster mit der Kontrolle, Sicherheit und vorhersehbaren Performance von Oracle Cloud Infrastructure auszuführen. Die Kubernetes Engine 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.


Das Kubernetes-Ökosystem und die Community

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.

Erste Schritte mit Kubernetes

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:

  • Mit Docker und Kubernetes eine lokale Entwicklungsumgebung einrichten
  • Mit Helidon einen einfachen Java-Microservice erstellen
  • Den Microservice mit Docker in ein Container-Image integrieren
  • Den Microservice in einem lokalen Kubernetes-Cluster bereitstellen
  • Einen Microservice im Cluster nach oben oder nach unten skalieren

Kubernetes für Entwickler

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.


Einführung zu Kubernetes on OCI (8:32)