Kubernetes wird oft mit weitläufigen Clustern und komplexen verteilten Systemen assoziiert. Und obwohl seine Stärke zweifellos in großen Bereitstellungen liegt, wussten Sie, dass Sie Kubernetes auf Ubuntu effektiv auf einem einzelnen Knoten betreiben können, ähnlich wie Sie Docker verwenden würden? Dieser Ansatz reduziert die Komplexität erheblich und ist somit ein idealer Ausgangspunkt für Entwickler, Tester oder sogar kleine Produktionsumgebungen. Auf Ubuntu ist die einfachste und effizienteste Art, Single Node Kubernetes zum Laufen zu bringen, mit MicroK8s. In diesem Beitrag führen wir Sie durch die Installation von MicroK8s auf einem einzelnen Ubuntu-Server und stellen dann ein leistungsstarkes BI-Tool, Apache Superset, bereit, um seine Fähigkeiten zu demonstrieren.
Warum MicroK8s für Single-Node Kubernetes?
MicroK8s, bereitgestellt von Canonical (den Entwicklern von Ubuntu), bietet eine leichte, vollständig konforme Kubernetes-Distribution. Es ist unglaublich einfach zu installieren und zu verwalten, was es perfekt für die lokale Entwicklung, IoT und Edge-Computing-Szenarien macht, wo ein ausgewachsener Multi-Node-Cluster überdimensioniert wäre. Es ist wirklich die beste Wahl, wenn Sie Kubernetes auf einem einzigen Node nutzen möchten.
Installation: MicroK8s zum Laufen bringen
Der Installationsprozess für MicroK8s nutzt Snap, das universelle Paketverwaltungssystem von Ubuntu. Der Schlüssel hierbei ist die Auswahl des richtigen „Kanals“ für Ihre Installation.
Überprüfen Sie zunächst die verfügbaren Kanäle:
snap info microk8s
Sie werden in der Regel den neuesten stable
-Kanal wählen wollen. Snap übernimmt dann automatisch kleinere Updates innerhalb dieses Kanals (z. B. von 1.33.0 auf 1.33.1). Es wird generell nicht empfohlen, den latest
-Kanal zu verwenden, da dieser häufiger bahnbrechende Änderungen einführen kann.
Um MicroK8s zu installieren, verwenden Sie den folgenden Befehl, wobei Sie 1.xx
durch Ihre gewünschte stabile Version ersetzen (z. B. 1.30/stable
):
sudo snap install microk8s --classic --channel=1.xx/stable
Nach Abschluss der Installation können Sie den Status überprüfen:
microk8s status
Dies zeigt Ihnen, welche Komponenten laufen und ob MicroK8s einsatzbereit ist.
Wichtige Addons aktivieren
MicroK8s wird mit einer Reihe nützlicher Addons geliefert, die einfach aktiviert werden können. Für unsere Superset-Bereitstellung benötigen wir einige davon:
- Helm: Ein Paketmanager für Kubernetes, der die Bereitstellung von Anwendungen vereinfacht.
- Hostpath-Storage: Ermöglicht die Speicherung persistenter Volumes direkt auf dem Host-Rechner. Standardmäßig befinden sich diese Volumes unter
/var/snap/microk8s/common/default-storage/
. - Ingress: Verwaltet den externen Zugriff auf Dienste innerhalb des Clusters und ermöglicht das Routing von HTTP/S-Verkehr.
- Cert-Manager: Automatisiert die Verwaltung und Ausstellung von SSL/TLS-Zertifikaten.
Aktivieren Sie diese mit den folgenden Befehlen:
microk8s enable helm
microk8s enable hostpath-storage
microk8s enable ingress
microk8s enable cert-manager
Damit der Cert-Manager automatisch Zertifikate für Ingress-Ressourcen beziehen kann, müssen Sie einen ClusterIssuer
erstellen. Dies geschieht typischerweise mit einer YAML-Datei, die Ihre gewählte Zertifizierungsstelle (z. B. Let’s Encrypt) definiert.
Arbeitsabläufe optimieren: Kubectl & Helm Aliase
Die meisten Kubernetes- und Helm-Tutorials gehen davon aus, dass die Befehle kubectl
und helm
direkt verfügbar sind. MicroK8s bietet eigene Versionen (microk8s.kubectl
, microk8s.helm
). Um Ihnen das Leben zu erleichtern und gängiger Dokumentation zu folgen, erstellen Sie Aliase:
Bash
sudo snap alias microk8s.kubectl kubectl
sudo snap alias microk8s.helm helm
Jetzt können Sie kubectl
und helm
direkt verwenden!
Apache Superset BI bereitstellen: Ein praktisches Beispiel mit MicroK8s
Nachdem unsere Single-Node Kubernetes-Umgebung bereit ist, wollen wir Apache Superset bereitstellen, eine Open-Source-Business-Intelligence- und Datenvisualisierungsplattform.
1. Umgebung vorbereiten und Superset Helm Chart herunterladen
Erstellen Sie zunächst ein Verzeichnis für Ihre Kubernetes-Konfigurationen und fügen Sie das Superset Helm Repository hinzu:
mkdir /kubernetes && cd /kubernetes
helm repo add superset https://apache.github.io/superset
Als Nächstes ziehen Sie das Superset Helm Chart und extrahieren dessen Inhalt:
helm pull superset/superset
tar xfvz superset-*.tgz
cd /kubernetes/superset
2. Helm Chart konfigurieren
Helm Charts verwenden values.yaml
-Dateien für die Konfiguration. Es ist bewährte Praxis, diese Datei zu kopieren und Ihre Änderungen in einer neuen Datei vorzunehmen, um das Original als Referenz zu behalten:
cp -a values.yaml my-values.yaml
Öffnen Sie nun my-values.yaml
mit Ihrem bevorzugten Texteditor. Wir müssen mehrere Einstellungen anpassen, damit Superset korrekt funktioniert.
Datenbanktreiber
Superset wird nicht mit vorinstallierten Datenbanktreibern geliefert. Sie müssen im Abschnitt bootstrapScript
angeben, welche Sie benötigen, abhängig von den Datenbanken, zu denen Sie eine Verbindung herstellen möchten. Zum Beispiel, um eine Verbindung zu PostgreSQL und MySQL herzustellen:
bootstrapScript: |
#!/bin/bash
pip install .[postgres] \
pip install .[mysql]
if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi
Eine vollständige Liste der verfügbaren Treiber finden Sie in der offiziellen Superset-Dokumentation.
Benutzerdefinierten Secret Key erstellen
Aus Sicherheitsgründen müssen Sie einen eindeutigen SECRET_KEY
generieren. Verwenden Sie den folgenden Befehl, um einen starken Schlüssel zu generieren:
openssl rand -base64 42
Aktualisieren Sie dann den Abschnitt secret
innerhalb von configOverrides
in Ihrer my-values.yaml
:
configOverrides:
my_override: |
# This will make sure the redirect_uri is properly computed, even with SSL offloading
ENABLE_PROXY_FIX = True
FEATURE_FLAGS = {
"DYNAMIC_PLUGINS": True
}
secret: |
# Generate your own secret key for encryption. Use `openssl rand -base64 42` to generate a good key
SECRET_KEY = 'IHR_GENERIERTER_SECRET_KEY_HIER' # <--- DIESEN ERSETZEN
Ingress-Konfiguration
Um auf Superset über Ihren Browser zuzugreifen, konfigurieren Sie Ingress. Dieser Abschnitt ermöglicht den externen Zugriff und integriert sich mit Cert-Manager für SSL. Denken Sie daran, example.domain.com
durch Ihre tatsächliche Domain zu ersetzen.
ingress:
enabled: true
ingressClassName: ~ # Verwenden Sie ~ damit der MicroK8s Ingress Controller dies verwaltet
annotations:
cert-manager.io/issuer: "letsencrypt" # Angenommen, Sie haben einen ClusterIssuer namens 'letsencrypt'
## Extend timeout to allow long running queries.
# nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
# nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
# nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
path: /
pathType: ImplementationSpecific
hosts:
- example.domain.com # <--- DIESEN ERSETZEN
tls:
- secretName: example-tls # <--- DIESEN ERSETZEN
hosts:
- example.domain.com # <--- DIESEN ERSETZEN
extraHostsRaw: []
Datenbank-Passwörter
Apache Superset verwendet eine eigene PostgreSQL-Datenbank. Sie müssen dasselbe Passwort an zwei Stellen in my-values.yaml
festlegen:
Unter supersetNode
:
supersetNode:
connections:
db_pass: IHR_DB_PASSWORT # <--- DIESES ERSETZEN
Und unter postgresql
:
postgresql:
auth:
password: IHR_DB_PASSWORT # <--- DIESES ERSETZEN
Web-Admin-Passwort
Legen Sie schließlich ein Passwort für den Superset-Web-Administrationsbenutzer fest:
init:
adminUser:
password: IHR_ADMIN_PASSWORT # <--- DIESES ERSETZEN
3. Apache Superset installieren
Nachdem alle notwendigen Konfigurationen in my-values.yaml
vorgenommen wurden, können Sie Superset nun mit Helm installieren:
helm upgrade --install --values my-values.yaml superset superset/superset
Dieser Befehl wird Superset in Ihrem Single-Node MicroK8s-Cluster bereitstellen. Sie können den Fortschritt der Bereitstellung mit kubectl get pods
und kubectl get ingress
überwachen. Sobald alles läuft und Ihr DNS auf die IP-Adresse Ihres Servers zeigt, sollten Sie Apache Superset über die in Ingress konfigurierte Domain erreichen können.

Fazit
Sie haben erfolgreich eine Single-Node Kubernetes-Umgebung mit MicroK8s auf Ubuntu eingerichtet und eine komplexe Anwendung wie Apache Superset bereitgestellt. Dies demonstriert die Leistungsfähigkeit und Flexibilität von Kubernetes, selbst in einem vereinfachten Setup. Von hier aus können Sie weitere Anwendungen erkunden, tiefer in Kubernetes-Konzepte eintauchen und Ihre Reise in die Welt der Container-Orchestrierung fortsetzen!
Wenn Sie Fragen haben oder eine Beratung wünschen, sprechen Sie uns gerne an.
Weitere interessante Artikel zum Thema Kubernetes finden Sie hier.
- Apache Superset mit Ubuntu MicroK8s Single Node Kubernetes - 23. Mai 2025
- Nextcloud mit S3 Storage Backend: Schritt-für-Schritt-Anleitung - 19. Mai 2025
- Caddy und Cloudflare : Automatische Zertifikate für dein Netzwerk - 6. März 2025