MyBee - Die einfachste API zum Erstellen und Löschen von K8S & Cloud-VMs

January 27, 2025 · View on GitHub

(Dies ist eine deutsche Übersetzung aus dem Englischen. Im Falle von Abweichungen hat die englische Anleitung Vorrang und die deutsche Version ist als veraltet zu betrachten.)

English | Español | Français | Deutsch | Русский | 中文 |


:information_source: Diese Anleitung behandelt Administration und Verwendung der MyBee-Distribution (MyB) für virtuelle Cloud-Umgebungen basierend auf dem Bhyve-Hypervisor. Diese Distribution ist kostenlos verfügbar ohne irgendwelche Einschränkungen der Anwendungszwecke.


MyBee ist eine Software zum Arbeiten mit virtuellen Umgebungen mithilfe einer einfachen API. Das Projekt hat Forschungscharakter und ist für den Einsatz in einer vertrauenswürdigen Umgebung und/oder die Integration/den Aufbau einer privaten Cloud sowie für den Aufbau eines eigenen Hyperconverged Clusters konzipiert.

MyBee wird als Satellitenprojekt (als eine Art Demo für eines der Ziele) des nichtkommerziellen CBSD-Projektes entwickelt. Es verwendet derzeit Image-Bibliotheken sowie Infrastruktur, die mit Mitteln aus Spenden der CBSD-Unterstützer aktuell gehalten werden, also eine der Ergebnisse der Projektfinanzierung darstellen.

Betriebssysteme und Distributionen, deren Betrieb getestet wurde (weitere in dieser Liste nicht aufgeführte sind verfügbar):

MyBee stellt dabei nur eine API bereit; wenn Sie auf der Suche nach einem Web-Interface sind, um mit Bhyve oder Jails zu arbeiten, sehen Sie sich einmal das ClonOS-Projekt an, welches ebenfalls ein vollständig quelloffenes und permissiv lizenziertes (BSD-Lizenz) Satellitenprojekt ist.


:information_source: Es gibt auch einen grafischen Client für MyBee namens MyBee-QT (der mit Vanilla-BSD/Linux-Systemen ohne MyBee verwendet werden kann ).


Übersicht über MyBee

Wenngleich MyBee jegliche gewünschten ISO-Abbilder zur Installation verwenden kann, ist das Projekt in erster Linie darauf ausgelegt, mit Cloud-Abbildern zu arbeiten. Ein wichtiger Teil von MyBee sind die Provisionierungswerkzeuge um leicht Ihre eigenen Cloud-Abbilder mit einer beliebigen Liste an Anwendungen erstellen zu können. Ein anderer Schwerpunkt liegt auf der Erweiterkeit der API.

Die hohe Geschwindigkeit bei der Initialisierung der Virtuellen Infrastruktur bei Bedarf macht MyBee als Basis zum Aufbau von SaaS- und FaaS-Plattformen. Die Durchschnittszeiten zum Erstellen und Hochfahren von Umgebungen bis zu dem Punkt, an dem sie in der Lage sind, entfernte Verbindungen zuzulassen, sehen beispielsweise so aus:

  1. Erstellen einer VM beliebiger Ausstattung (RAM/vCPU/Storage) und Hochfahren derselben wird in ~5 Sekunden bewerkstelligt; Abhängig vom Tuning der Bootparameter und der Bootgeschwindigkeit des Gastsystems, kann die VM nach gerade einmal ~35 Sekunden in der Lage sein, RDP- oder SSH-Verbindungen anzunehmen (ohne den GRUB-Bootloader-Timeout anzupassen) 1

vmup1

  1. Ersteuuen und Hochfahren eines Kubernetes-Clusters mit der Fähigkeit, API-Anfragen anzunehmen: ~30 Sekunden für eine Single-Master-Konfiguration und ~1 Minute und 20 Sekunden für ein Cluster mit einer beliebigen Anzahl von Master- und Worker-Knoten. 1, 2

kubetime

Die Software ist komplett aus alternativen Technologien aufgebaut, deren Quellcode unter den sehr permissiven BSD- bzw. MIT-Lizenzen steht; keine der Komponenten oder Schichten ist mit irgendeiner Firma verbunden. Tatsächlich baut MyBee vollständig auf Open-Source-Projekten auf:

  • Das wunderbare Betriebssystem FreeBSD;
  • Der hochperformante Hypervisor Bhyve;
  • Der NETMAP/VALE Virtual Switch;
  • Der CBSD Virtual Environment manager;

Systemvoraussetzungen

Jeder beliebige physikalische ("bare metal") Server mit einem Intel/AMD x86-64 Prozessor, der Virtualisierung und die POPCNT Instruktionen unterstützt, ist für den Einsatz mit MyBee geeignet, wenn darauf FreeBSD 14.2-RELEASE läuft.


:information_source: bhyve ist auch auf ARM64-Architekturen möglich und bietet zunächst Unterstützung für RISCV-basierte Virtualisierung


Unter gewissen Umständen kann MyBee selbst in einer Virtuellen Umgebung betrieben werden; dies wird jedoch nicht empfohlen und wurde durch die MyBee-Entwickler nicht getestet. In Fällen, in welchen der Bhyve-Hypervisor nicht benutzt werden kann, können dennoch Container erstellt werden, die auf der Technologie von FreeBSD-Jails basieren - jedoch ist dies vermutlich nicht das, was sie von MyBee erwarten. ;-)

  • Minimale Anforderungen Hauptspeicher: 4 GB RAM;
  • Minimale Anforderungen HDD-/SSD-Speicher: 20 GB (für Kubernetes-Cluster wird die Verwendung von SSD/NVME stark empfohlen);
  • Verfügbarkeit von IPv4;
  • Vorhandensein von IPv6 (optional, aber stark empfohlen);
  • Internetverbindung (Ports 80/443), da MyBee (pro Abbild natürlich einmalig) die "gold-images" für die Betriebssysteme herunterläd, die für eine Umgebung ausgewählt wurden;

Die Erstellung von Virtuellen Umgebungen wird über eine REST-API durchgeführt (d.h. die Kommandozeile und das Werkzeug curl sind völlig ausreichend, um MyBee zu kontrollieren!). Alternativ steht eine kleine Client-Applikation zur für moderne Desktop-Betriebssysteme zur Verfügung. In Zukunft könnte zusätzlich Unterstützung für Terraform und für eine Mobil-Applikation verfügber werden.

Komponenten:

MyBee Handbuch

   ~~~ * Schnellstart: Ihr erster virtueller Gast

Wenn Ihnen dieses Projekt gefällt, möchten Sie sich bedanken und die Entwicklung unterstützen:

Patreon donate button

Footnotes

    • unter der Voraussetzung, daß kein Overcommitment der physischen Hardware vorliegt;
    2
    • 30 Sekunden werden für das Bootstrapping des etcd-Dienstes benötigt, wenn Anzahl der Master-Knoten > 1;