Elegant Segeln

MicroK8s: Große Dinge kommen in kleinen Paketen

Alex Chalkias

© Shutterstock / Efthymia

Trotz der steigenden Popularität von Kubernetes ist die Technologie nicht perfekt. Canonical hat Ende 2018 MicroK8s eingeführt, um die Einstiegshürden mit Kubernetes, auch bekannt als K8s, für Entwickler, DevOps-Ingenieure und andere, zu verringern.

Wer erinnert sich nicht an das riesige Containerschiff, das im März im Suezkanal auf Grund gelaufen ist und eine Woche lang den Schiffsverkehr an beiden Enden dieser zentralen Handelsroute und internationalen Wasserstraße blockiert hat. So ähnlich könnte sich die Verwaltung von Software-Containern ohne Kubernetes anfühlen.

Man kann mit Fug und Recht behaupten, dass die IT ohne das Open-Source-System Kubernetes und seine Funktionen zum automatischen Bereitstellen, Aktualisieren und Betreiben von Anwendungen und Diensten im großen Maßstab in der Cloud immer noch in der alten Welt der monolithischen Software feststecken würde. Stattdessen nutzt sie längst und immer mehr das modulare, flexible Paradigma, das heute die Grundlage für digitale Innovationen weltweit bildet.

One tool to rule them all…

83 Prozent von 1.324 IT-Profis, die letztes Jahr an einer Umfrage der Cloud Native Computing Foundation teilgenommen haben, gaben an, dass sie Kubernetes für die Verwaltung ihres Container-Lebenszyklus verwenden. Doch trotz ihrer steigenden Beliebtheit ist die Technologie nicht perfekt. Denn es kann kompliziert sein, sie zu erlernen, zu betreiben und zu warten.

Um die Einstiegshürden für Entwickler, DevOps-Ingenieure und andere mit Kubernetes, auch bekannt als K8s, zu verringern, hat Canonical Ende 2018 MicroK8s eingeführt.

Canonical hatte zu diesem Zeitpunkt bereits stark in Kubernetes investiert. Das Unternehmen hatte zwei Jahre zuvor eine vollständig unterstützte K8s-Distribution für Unternehmen veröffentlicht, und sein Ubuntu-Betriebssystem war (und ist) die Referenzplattform für Kubernetes in allen großen öffentlichen Clouds – Amazons EKS, Googles GKE und Microsofts AKS.

Keep it simple, stupid!

Nachdem offensichtlich geworden war, dass die Benutzerfreundlichkeit bei Kubernetes viele Entwickler vor größere Herausforderungen stellte, wollte Canonical die Nutzung von K8s Diensten und Tools erleichtern. Von Anfang an war MicroK8s als leichtgewichtige/ schlanke, reine Upstream- und produktionsreife Kubernetes-Distribution konzipiert, die es Entwicklern ermöglicht, ein voll funktionsfähiges, konformes und sicheres K8s-System in weniger als einer Minute zum Laufen zu bringen.

Zweieinhalb Jahre später ist MicroK8s (ausgesprochen „micro-kates“) diesem seinem ursprünglichen Zweck treu geblieben und gleichzeitig zu einer umfangreicheren Lösung gereift, die Entwicklern hilft, produktiver zu sein und die berüchtigten operativen Probleme bei Konfiguration, Überwachung und Verwaltung von Kubernetes-Clustern zu reduzieren.

MicroK8s findet mittlerweile in einer Vielzahl von Szenarien Verwendung, von der Single-Node-Installation auf der Entwickler-Workstation bis hin zur Unterstützung rechenintensiver Aufgaben bei Künstlicher Intelligenz (KI) und Workloads im Maschinellen Lernen (ML). MicroK8s hat einen geringen Ressourcenbedarf und unterstützen sowohl ARM als auch Intel-Architekturen. Deswegen eignen sie sich bestens für das Edge, das Internet der Dinge (IoT) und Appliances. MicroK8s ist auch sehr beliebt für den Raspberry PI.

DevOps & Machine Learning

MicroK8s hat ebenfalls seine Eignung als Tool für DevOps unter Beweis gestellt, egal ob K8s zum Ausführen von Tests auf einer lokalen oder einer produktiven CI/CD-Pipeline verwendet wird. Alles, was ein Entwickler tun muss, ist containerisierte Apps auf lokaler Ebene unter Verwendung von MicroK8s zu erstellen, z.B. mit Gitlab. Anschließend genügt es, die Apps in die Testumgebung zu verschieben, die auf einer anderen MicroK8s-Instanz erstellt wird, um schließlich die Container in der Produktion bereitzustellen. Normalerweise würde dieser mehrstufige Prozess einen hohen manuellen Konfigurationsaufwand erfordern. Mit MicroK8s wird das alles automatisch erledigt.

KI/ML-Pipelines sind ein weiterer wichtiger Anwendungsfall für MicroK8s geworden.  Kubeflow – das wichtigste ML-Toolkit für Kubernetes – auf MicroK8s auszuführen, ist so einfach wie die Eingabe von „microk8s enable kubeflow“. Ebenso verhält es sich mit der GPU-Beschleunigung, die für die Rechenanforderungen beim Modelltraining benötigt wird: auch sie ist nur einen Befehl entfernt.

MicroK8s-Cluster können auf jeder Infrastruktur eingesetzt werden – einem Laptop, einer Workstation, einer virtuellen Cloud-Maschine oder einem On-Premises-Server – und sind für Linux, Windows und macOS verfügbar. Der Cluster wird in einem Paket ausgeliefert, das mit einem einzigen Befehl einen Single-Node (Standalone) K8s-Cluster installiert oder mit wenigen Befehlen einen Multi-Node-Cluster erstellen kann.

MicroK8s verfügt über alle Kubernetes-Kernkomponenten; darüber hinaus sind viele der Add-ons, die man typischerweise in Kubernetes sucht, wie DNS und das Dashboard, ebenfalls nur einen Befehl entfernt.

MicroK8s nutzt den snap-Mechanismus zum Paketieren von Anwendungen. Das bedeutet, dass der MicroK8s-Cluster automatisch aktualisiert wird, sobald eine neue K8s-Version im Upstream erhältlich ist. Alle verfügbaren Sicherheitspatches werden ebenfalls automatisch installiert.

Kontinuierliche Entwicklung

Die Idee dabei ist, dass auch Personen mit wenig bis gar keiner praktischen Kubernetes-Erfahrung nach einem „Zero-Ops-Ansatz“ verfahren können – der K8s-Cluster ist mit einem einzigen Befehl einsatzbereit, Sicherheitsupdates erfolgen automatisch, Add-Ons lassen sich ausführen, ohne dass man sich um die Konfiguration kümmern muss (es sei denn, man bevorzugt aus irgendeinem Grund eine manuelle Konfiguration).

Seit der Markteinführung sind folgende Funktionen zu MicroK8s hinzugekommen:

  • Hochverfügbarkeits-Clustering für einen vollständig ausfallsicheren K8s-Cluster, bei dem drei oder mehr Knoten zu einem Cluster verbunden werden. MicroK8s verteilt automatisch die Kontrollebene auf die Knoten.
  • Verwendung von Juju, JAAS oder Helm zum Automatisieren von Abläufen
  • Verwendung von DNS, Ingress, Calico, Flannel oder Cilium für das Networking eines Projekts.
  • GPU-Beschleunigung für KI- und ML-Projekte, sowie die Möglichkeit, sie mit Kubeflow als HPC-Home Edition zu kombinieren.
  • Integration mit Istio oder Linkerd für Service Mesh und MetalLb für Load Balancing.
  • Verwendung von KNative zum Schreiben von serverlosen Anwendungen.
  • Eine vollständige Toolbox von Logging- und Monitoring-Technologien, einschließlich Prometheus, Grafana, Elastic, Fluentd, Kibana und Jaeger.

MicroK8s 1.21

Die neue Version MicroK8s 1.21 soll Probleme rund um den Speicherverbrauch von K8s für erschwingliche Geräte mit kleinen Formfaktoren lösen. Der Speicherbedarf wurde in Single-Node- und Multi-Node-Implementierungen um 30 Prozent gesenkt, was denjenigen hilft, die Cluster mit Hardware wie dem Raspberry Pi oder dem NVIDIA Jetson aufbauen wollen.

MicroK8s hat in dieser Version außerdem 280MB Speicherplatz eingespart. Das wurde möglich, weil die Upstream-Binärdateien vor dem Verpacken jetzt in eine einzige Binärdatei kompiliert werden. Das führt zu einem deutlich leichteren Paket – 192 MB – und, was noch wichtiger ist: ein Kubernetes von nur 580 MB. MicroK8s kann jetzt also auf Geräten mit weniger als ein GB Arbeitsspeicher eingesetzt werden und lässt immer noch Ressourcen für die Art von Mehrfach-Container-Implementierungen übrig, die für das Hosting von dreistufigen Websites oder den Betrieb von KI/ML-Modellen erforderlich sind.

Frühere Versionen packten entweder alle Kubernetes-Upstream-Binärdateien so, wie sie waren, oder kompilierten sie in einem snap. Dieses Paket war 218 MB groß und stellte ein volles Kubernetes von 800 MB bereit.

Kurz: MicroK8s bietet Entwicklern und IT-Mitarbeitern eine Antwort, die sich zwar intensiv mit Kubernetes beschäftigen wollen, aber vor der Komplexität bisher zurückschrecken. Mit MicroK8s wird alles viel einfacher.

Geschrieben von
Alex Chalkias

Alex Chalkias is a Product Manager at Canonical working with data center solutions such as
Kubernetes and Ceph. He has 8 years of work experience in telecommunications, project
management and IT consulting and has also been involved in projects related to volunteering
as a member of the TEDxAthens team. He has a Master’s degree from the school of
Electrical Engineering and Computer Science of the University of Patras. During his studies
his main occupations were programming and new technologies, such as Augmented Reality
and Human – Computer Interaction. Technology and how it can be used to improve people’s
lives is the subject that he is most passionate about. In his spare time, he enjoys tennis and
CrossFit, listening to music, good food and coffee.

Kommentare

Hinterlasse einen Kommentar

avatar
4000
  Subscribe  
Benachrichtige mich zu: