6 Das 2018 vorgestellte Projekt MetalK8s wurde entwickelt, um den Betrieb von Kubernetes (K8s) auf Bare-Metal-Servern mit persistentem Speicher zu vereinfachen. Version 1.1 basierte auf Ansible und kubespray, während 2.X (ab Version 2.0) auf SaltStack als Bereitstellungs-Orchestrator basiert. Damit sind MetalK8s 1.1 und 2.X völlig unterschiedliche, unabhängige Orchestrierungstools mit jeweils eigenen Vor- und Nachteilen. Zudem wird MetalK8s 2.X (dessen Hauptentwicklungszweig 2.4 ist) mit einer neueren Kubernetes-Version ausgeliefert (zuletzt 1.15). MetalK8s 1.1 wird mit Kubernetes 1.11 ausgeliefert, das recht alt ist. Zu den drei wichtigsten neuen Funktionen von MetalK8s 2.X gehören das Lebenszyklusmanagement von Lösungen mit Unterstützung für Upgrade und Downgrade, die Volume-Verwaltung und eine vereinfachte Benutzeroberfläche zur Verwaltung von Kubernetes-Ressourcen. Die größte Herausforderung für unser Team ergab sich aus dem architektonischen Umdenken und der Neugestaltung von MetalK8s. Bei null anzufangen ist nie einfach, war hier aber nötig. Ingenieure zu finden, die die Aufgabe gut erledigen, die finanziellen Mittel dafür bereitzustellen und dann das Modell neu zu erfinden, um es an unseren speziellen Anwendungsfall anzupassen, erforderte enorm viel Inspiration. [bctt tweet=”MetalK8s 2.X bietet eine vereinfachte Oberfläche und eine völlig neue Codebasis, damit auch nicht technische Benutzer Kubernetes auf Bare-Metal-Servern einfach steuern können.” username=”scality”] Die Dokumentation zu MetalK8s ist direkt im Repository des Projekts verfügbar, und es gibt auch eine HTML-Version, hier (auf Englisch). Diese Dokumentation umfasst das Architekturdesign, einen Entwicklerleitfaden, Implementierungsleitfäden und einen Betriebsleitfaden – alles öffentlich für alle Interessierten verfügbar. Die neu gestaltete Benutzeroberfläche (UI) wurde entwickelt, damit auch nicht technische Benutzer nahtlos mit MetalK8s arbeiten können, ohne das zugrunde liegende System im Detail zu kennen oder zu wissen, wie alle Teile „unter der Haube“ zusammenhängen. Diese sorgfältig gestaltete UI gibt Benutzern auf intuitive, praktische Weise die Kontrolle über Nodes, Volumes, Lösungen, Versionierung und vieles mehr. Der Schritt von MetalK8s 1.0 zu MetalK8s 2.X ist enorm. Das neue Orchestrierungstool nutzt SaltStack, um die Orchestrierung der gesamten Plattform zu steuern – vor allem wegen seiner grundlegenden Flexibilität. Es erleichtert die Erweiterung der Bereitstellungskette und scheint besser zu sein als die frühere Version. Das Kernziel ist, Menschen, die mit Daten Werte schaffen, Freiheit und Kontrolle zu geben. Eine MetalK8s-Testumgebung soll sich schnell und einfach einrichten lassen. Die neue Version bietet ein besseres Build-Tool, mit dem die meisten Benutzer in wenigen Minuten startklar sein sollten – eine deutliche Verbesserung gegenüber dem früheren System. Für das Projekt MetalK8s gehört Ansible/kubespray der Vergangenheit an. Der neue Ansatz zielt aus unserer Sicht stärker darauf ab, den Wert für die langfristige Unterstützung all unserer anderen Projekte neu zu definieren. Der Stand der Technik ändert sich, und wir sind verpflichtet, unsere Modelle neu zu erfinden, um für unsere Benutzer relevant zu bleiben. MetalK8s wird aktiv weiterentwickelt, vor allem vom Kernteam von Scality, daher können wir derzeit nicht allzu viele Details zur Roadmap verraten. Das wird sich sicherlich bald ändern müssen. Bisher gab es nicht allzu viele Beiträge aus der Open-Source-Community, doch das Team freut sich immer über Beiträge aus der Community.