Kubernetes ist ein Open-Source-Projekt, das 'Google-Stil' Cluster-Management-Funktionen in die Welt der virtuellen Maschinen oder 'on the metal'-Szenarien bringt. Es funktioniert sehr gut mit modernen Betriebssystemumgebungen (wie CoreOS oder Red Hat Atomic), die leichte Computing-'Nodes' anbieten, die für Sie verwaltet werden. Es ist in Golang geschrieben und ist leichtgewichtig, modular, tragbar und erweiterbar. Wir (das Kubernetes-Team) arbeiten mit einer Reihe von verschiedenen Technologieunternehmen (einschließlich Mesosphere, die das Mesos Open-Source-Projekt kuratieren) zusammen, um Kubernetes als Standardweg zur Interaktion mit Rechenclustern zu etablieren. Die Idee ist, die Muster zu reproduzieren, die wir sehen, dass Menschen benötigen, um Cluster-Anwendungen basierend auf unserer Erfahrung bei Google zu entwickeln. Einige dieser Konzepte sind:
- Pods — eine Möglichkeit, Container zusammenzufassen
- Replikationscontroller — eine Möglichkeit, den Lebenszyklus von Containern zu handhaben
- Labels — eine Möglichkeit, Container zu finden und abzufragen, und
- Dienste — eine Gruppe von Containern, die eine gemeinsame Funktion ausführen.
Also alleine mit Kubernetes haben Sie etwas, das einfach, leicht zu starten, tragbar und erweiterbar ist und 'Cluster' als Substantiv zu den Dingen hinzufügt, die Sie auf leichteste Weise verwalten. Führen Sie eine Anwendung auf einem Cluster aus und machen Sie sich keine Gedanken mehr über eine einzelne Maschine. In diesem Fall ist der Cluster eine flexible Ressource wie eine VM. Es ist eine logische Recheneinheit. Schalten Sie ihn ein, verwenden Sie ihn, ändern Sie seine Größe, schalten Sie ihn schnell und einfach aus.
Bei Mesos gibt es in Bezug auf die grundlegende Vision eine beträchtliche Überschneidung, aber die Produkte befinden sich in unterschiedlichen Phasen ihres Lebenszyklus und haben unterschiedliche Schwerpunkte. Mesos ist ein verteiltes System-Kernel, der viele verschiedene Maschinen zu einem logischen Computer zusammenfügt. Er wurde für eine Welt geboren, in der Sie viele physische Ressourcen besitzen, um einen großen statischen Rechencluster zu erstellen. Das Tolle daran ist, dass viele moderne skalierbare Datenverarbeitungsanwendungen gut auf Mesos laufen (Hadoop, Kafka, Spark) und es schön ist, weil Sie alle auf dem gleichen Grundressourcenpool ausführen können, zusammen mit Ihren neuen Container-verpackten Apps. Es ist etwas schwerwiegender als das Kubernetes-Projekt, wird aber dank der Arbeit von Leuten wie Mesosphere immer einfacher zu verwalten.
Jetzt wird es wirklich interessant, dass Mesos derzeit angepasst wird, um viele der Kubernetes-Konzepte hinzuzufügen und die Kubernetes API zu unterstützen. Es wird also ein Gateway sein, um mehr Fähigkeiten für Ihre Kubernetes-App zu erhalten (Master mit hoher Verfügbarkeit, fortschrittlichere Terminologie für die Planung, Fähigkeit, auf eine sehr große Anzahl von Knoten zu skalieren), wenn Sie sie benötigen, und ist gut geeignet, um Produktions-Workloads auszuführen (Kubernetes befindet sich noch im Alpha-Zustand).
Wenn mich jemand fragt, neige ich dazu zu sagen:
-
Kubernetes ist ein großartiger Ort, um anzufangen, wenn Sie neu in der Welt des Clustering sind; es ist der schnellste, einfachste und leichteste Weg, um die Reifen zu testen und mit der Entwicklung von Cluster orientierten Entwicklung zu beginnen. Es bietet ein sehr hohes Maß an Portabilität, da es von vielen verschiedenen Anbietern unterstützt wird (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare, etc).
-
Wenn Sie bereits Arbeitslasten haben (Hadoop, Spark, Kafka, etc), bietet Ihnen Mesos ein Framework, das es Ihnen ermöglicht, diese Arbeitslasten miteinander zu verflechten und etwas Neues einschließlich Kubernetes-Apps einzufügen.
-
Mesos bietet Ihnen einen Ausweg, wenn Sie Fähigkeiten benötigen, die von der Community im Kubernetes-Framework noch nicht implementiert wurden.