So führen Sie Ihren eigenen Kubernetes-Cluster mit MicroK8s aus

MicroK8s ist eine leichte Kubernetes-Distribution, die von Canonical entwickelt wurde, dem bekanntesten für das Ubuntu-Betriebssystem. MicroK8s folgt Upstream-Kubernetes-Releases und konzentriert sich auf die Bereitstellung einer mühelosen Installations- und Verwaltungserfahrung. So starten Sie Ihren eigenen Cluster.

Installation

MicroK8s ist unter Linux, Windows und macOS verfügbar. Auf der Website des Projekts wird ein grafischer Windows-Installer angeboten. macOS-Benutzer sollten Brew verwenden, während Linux-Benutzer von Snaps bedient werden.

Folgen Sie den separaten Snap-Installationsschritten, wenn Snapd auf Ihrem System fehlt. Verwenden Sie dann den Befehl snap install, um MicroK8s hinzuzufügen:

sudo snap install microk8s –classic

< /p>

Dadurch wird die neueste MicroK8s-Version installiert. Sie können eine bestimmte Version mit dem Flag –channel auswählen:

sudo snap install microk8s –classic –channel=1.19/stable

Dadurch erhalten Sie eine Version von MicroK8s, die auf Kubernetes basiert v1.19.

Werbung

Die Installation kann beim Start der Kubernetes-Dienste eine Weile dauern. Wenn Sie den microk8s-Status –wait-ready ausführen, können Sie den Fortschritt überprüfen, damit Sie wissen, wann MicroK8s einsatzbereit ist.

Interagieren mit Ihrem Cluster

MicroK8s bündelt eine eigene Version des Kubectl-Befehlszeilentools. Verwenden Sie microk8s kubectl, um mit Ihrem Cluster zu interagieren, indem Sie einen regulären kubectl-Befehl anhängen:

sudo microk8s kubectl get all –all-namespaces

Dieser Befehl zeigt alle Ressourcen in Ihrem Cluster an.

< img src="http://www.cloudsavvyit.com/pagespeed_static/1.JiBnMqyl6S.gif" />

Erstellen Sie als Nächstes ein grundlegendes Manifest für die Bereitstellung:

apiVersion: v1 Art: Pod-Metadaten: Name: My-Pod-Spezifikation: Container: – Name: nginx-Image: nginx:neueste Ports: – Name: http containerPort: 80 Protokoll: TCP

Manifest auf Ihren Cluster anwenden:

sudo microk8s kubectl apply -f ./manifest.yaml

MicroK8s erstellt einen neuen Pod, auf dem der NGINX-Webserver ausgeführt wird. Es wird angezeigt, wenn Sie microk8s kubectl get all erneut ausführen.

< /p>

MicroK8s ist mit allen Kubectl-Befehlen kompatibel. Wenn Sie das microk8s-Präfix entfernen möchten, können Sie ein “real” kubectl-Binärdatei stattdessen:

sudo microk8s kubectl config view –raw > $HOME/.kube/config

Dies exportiert die MicroK8s-Verbindungsinformationen in Ihre Kubernetes-Konfigurationsdatei, sodass einfache kubectl-Befehle Ihren Cluster erreichen können.

Die meisten MicroK8s-Befehle erfordern Superuser-Zugriff. Für eine langfristige Nutzung fügen Sie Ihr Benutzerkonto der microk8s-Gruppe hinzu, damit Sie sudo nicht jedes Mal verwenden müssen:

sudo usermod -aG microk8s $USER

Auf Docker-Images zugreifen

MicroK8s können nicht automatisch auf Ihre lokalen Docker-Images zugreifen. Wenn Sie ein gerade erstelltes Image bereitstellen möchten, importieren Sie es manuell in die MicroK8s-Registrierung, indem Sie es als Tar-Archiv exportieren.

docker save my-image:latest > my-image.tar microk8s ctr image import my-image.tar Werbung

Jetzt können Ihre Pods erfolgreich auf das Image verweisen. Sie können alle bekannten Bilder in der MicroK8s-Registrierung mit dem Befehl microk8s ctr images ls auflisten.

Neben der einfachen Verwendung auf Ihrem lokalen Computer sollten Sie eine dedizierte Docker-Image-Registrierung einrichten, um Ihre Images zu speichern. Verschieben Sie Bilder dorthin und gewähren Sie MicroK8s Pull-Zugriff, damit sie sie aus Ihrem Speicher abrufen können. Die zu befolgenden Schritte hängen von der Konfiguration Ihrer Registrierung ab.

Aktivieren des Kubernetes-Dashboards

Das Kubernetes-Web-Dashboard ist im Lieferumfang enthalten MicroK8s, ist aber standardmäßig deaktiviert. Sie können es aktivieren, indem Sie das Add-On aktivieren und dann zur IP-Adresse des Dashboard-Dienstes navigieren.

microk8s enable Dashboard

Das Starten des Dienstes kann einige Augenblicke dauern. Führen Sie microk8s kubectl get services –namespace kube-system aus und warten Sie, bis der Dienst kubernetes-dashboard angezeigt wird. Notieren Sie sich seine CLUSTER-IP und besuchen Sie seine Adresse in Ihrem Browser. Das Kubernetes-Dashboard sollte erscheinen und Ihnen die Interaktion mit Ihren Ressourcen über eine grafische Oberfläche ermöglichen.

Weitere Addons verwenden

MicroK8s wird mit mehreren anderen optionalen Add-Ons für allgemeine Anwendungsfälle geliefert. Das DNS-Addon bietet Unterstützung für die DNS-Bereitstellung, Storage bietet eine Standardspeicherklasse basierend auf Hostverzeichnissen und Ingress bietet einen Ingress-Controller, mit dem Sie Ingress-Routing-Ressourcen erstellen können.

Werbung

Das Registry-Addon ist ein spezieller Dienst, der eine einsatzbereite Docker-Registry auf localhost:32000 bereitstellt. Die Verwendung der Registrierung bietet einen privaten Speicherplatz, auf den Sie Ihre Images übertragen können, bevor Sie sie in Ihren Kubernetes-Pods verwenden. In ähnlicher Weise startet das istio-Add-On ein Istio-Mesh, um Service-Discovery-Funktionen bereitzustellen.

Eine umfassende Beschreibung dieser Add-Ons finden Sie in der MicroK8s-Dokumentation. Sie können alle verfügbaren Addons in Ihrer Installation anzeigen, indem Sie microk8s enable ohne Argumente ausführen. Nur die minimale Kubernetes-Funktionalität ist standardmäßig aktiv, da sich MicroK8s auf die Bereitstellung einer optimierten Erfahrung konzentriert.

Verwaltung Ihres Clusters

Alle Clusterverwaltungsfunktionen werden vom Befehl microk8s bereitgestellt. Der Status der Ausführung von microk8s zeigt einen Überblick über Ihren Cluster, einschließlich dessen, ob er ausgeführt wird, und der Liste der aktiven Add-ons.

Um Ihren Cluster herunterzufahren, führen Sie microk8s stop aus. Dadurch werden alle Dienste gestoppt und alles offline geschaltet. Sie starten den Cluster mit dem Startbefehl microk8s neu. Es kann einen Moment dauern, bis alle Ihre Dienste ausgeführt werden.

Sie können Ihre Clusterverbindungsdetails anzeigen, indem Sie microk8s config ausführen. Dadurch wird eine Kubectl-kompatible YAML-Datei ausgegeben, die mit anderen Tools verwendet werden kann.

Wenn Sie microk8s reset ausführen, wird Ihr Cluster in den ursprünglichen Zustand nach der Installation zurückgesetzt. Dies ist eine zerstörerische, zeitaufwendige Operation, die alle Ihre Ressourcen zerstört. Es erleichtert das Experimentieren, indem Sie alles abreißen können, ohne den MicroK8s-Snap zu entfernen. Kubernetes-Speichervolumes werden standardmäßig beibehalten; Sie können sie auch löschen, indem Sie das Flag –destroy-storage hinzufügen.

Multi-Node-Cluster

Obwohl MicroK8s als Single-Node gestartet wurden Projekt können Sie Ihrem Cluster jetzt sekundäre Knoten hinzufügen. Zusätzliche Knoten bieten Ihnen Redundanz sowie eine erhöhte Arbeitslastkapazität. Jeder Knoten benötigt seine eigene vollständig isolierte Umgebung – entweder eine separate physische Maschine, VM oder Container. Sie können nicht zwei MicroK8s-Worker-Instanzen in derselben Umgebung ausführen.

Werbung

Führen Sie zuerst microk8s add-node auf Ihrem ursprünglichen Knoten aus. Dies wird der steuernde Master, der die Kubernetes-Steuerungsebene ausführt.

microk8s add-node

< /p>

Der Befehl erstellt eine vorläufige Registrierung für den neuen Knoten. Es wird einen microk8s-Join-Befehl ausgeben, der den Knoten mit der Steuerungsebene verbindet. Der Verbindungsvorgang dauert einige Sekunden. Der Knoten muss Ihren Master über die angezeigte Netzwerkadresse erreichen können.

Sobald der Knoten hinzugefügt wurde, kann er Ihre Pods hosten. Sie können alle verfügbaren Knoten anzeigen, indem Sie microk8s kubectl get node ausführen.

Das Entfernen eines Knotens aus dem Cluster ist eine umgekehrte Übung. Führen Sie zuerst microk8s auf dem Zielknoten aus. Führen Sie dann microk8s remove-node 10.108.0.1 auf dem Master aus und ersetzen Sie die IP-Adresse des entfernten Knotens. Dadurch werden alle anderen Knoten über die Entfernung benachrichtigt. Der Zielknoten kehrt zu einer regulären eigenständigen MicroK8s-Installation zurück und wird sein eigener Master.

Schlussfolgerung

MicroK8s ist eine minimale Kubernetes-Distribution, die sich leicht selbst entwickelt -gehostet auf Ihrer eigenen Hardware. Es ist vollständig CNFC-kompatibel und wird mit integrierten Add-Ons für das offizielle Kubernetes-Dashboard, Ingress-Routing und das Istio-Service-Mesh geliefert. Diese helfen Ihnen dabei, schnell Ihren eigenen produktionsreifen Cluster einzurichten, der in der Lage ist, die verwalteten Kubernetes-Angebote von Public-Cloud-Anbietern abzugleichen.

Anzeige

MicroK8s unterstützt ein besonders breites Spektrum an Hardware- und Bereitstellungsarchitekturen. Es funktioniert auf Entwickler-Workstations, in hochverfügbaren Produktionsumgebungen und auf dem Raspberry Pi. Dank dieser Flexibilität können Sie in Entwicklung und Produktion genau die gleiche Technologie verwenden, sogar bis hin zur Kubernetes-Implementierung.

Im Vergleich zu Konkurrenzprojekten wie Minikube zeichnet sich MicroK8s durch die Ausführung in Umgebungen mit eingeschränkten Ressourcen und minimalem Overhead aus. Es profitiert von seiner eigenen Containerisierung, die das Snap-Paketformat verwendet, sodass keine schwere VM ausgeführt werden muss. Dadurch haben Sie mehr Kapazität zum Hosten Ihrer Workloads und anderer Entwicklertools.

Während MicroK8s als entwicklerorientiertes Projekt begann, das auf lokale Tests und Prototypen abzielte, wird es jetzt als Produktions- fertige Kubernetes-Distribution mit einer nachgewiesenen Bilanz für die engmaschige Verfolgung von Upstream-Releases. Cluster können mit dem Befehl snap refresh microk8s auf neue Kubernetes-Releases aktualisiert werden.


Posted

in

by

Tags: