Software

Kubernetes installieren: minikube und k3s Schritt für Schritt

Talha Aslan 19 Minuten Lesezeit 3 Aufrufe

Wie können Sie Kubernetes installieren und welcher Weg passt zu Ihnen?

Kubernetes ist ein quelloffenes System, das Container auf einem oder mehreren Rechnern ausführt, bei Fehlern neu startet und Ihren Sollzustand hält. Zum Installieren nutzen Sie minikube für einen lokalen Lerncluster auf Ihrem Rechner oder k3s für einen schlanken Cluster auf einem Linux Server. Außerdem steuern Sie beide mit kubectl.

Dieser Leitfaden zeigt, wie Sie Kubernetes installieren, ohne unnötige Risiken einzugehen. Wir sind ein Team für digitales Marketing und Webentwicklung, kein Hostinganbieter. Deshalb stammen alle Befehle und Anforderungen aus der offiziellen Dokumentation von minikube, k3s und Kubernetes. Daher nennen wir keine Versionsnummern. Sie installieren also die aktuelle stabile Version und prüfen die offizielle Seite selbst.

Wenn Sie Kubernetes installieren möchten, stellen Sie sich zunächst eine Frage: Wollen Sie darauf lernen oder eine echte Anwendung betreiben? Die Antwort bestimmt Ihren Weg, denn ein Übungscluster und ein Dauerbetrieb verlangen sehr unterschiedliche Sorgfalt.

Am Ende dieses Leitfadens wissen Sie zwei Dinge. Erstens sehen Sie, wie Sie einen Cluster starten und eine erste App ausführen. Zweitens wissen Sie, wann Sie diese Arbeit lieber Ihrem Hostinganbieter überlassen.

ZielEmpfohlener WegWo es läuft
Lernen und AusprobierenminikubeIhr eigener Rechner
Kleine Test oder Staging Umgebungk3sEin Linux Server (VPS)
Kritische Last mit viel VerkehrVerwalteter Kubernetes DienstEin Cloud Anbieter

Was bedeuten Pod, Deployment und Service in Kubernetes?

Drei Begriffe decken die Grundlagen ab. Ein Pod ist die kleinste Einheit im Cluster und enthält einen oder mehrere Container. Dann beschreibt ein Deployment, wie viele Pods laufen sollen und wie Updates ablaufen. Schließlich gibt ein Service diesen Pods eine feste Netzwerkadresse.

Zunächst: Laut dem offiziellen Tutorial erstellt und aktualisiert ein Deployment die Instanzen Ihrer Anwendung. Fällt zum Beispiel ein Knoten aus, startet der Deployment Controller die Instanz auf einem anderen Knoten neu. Anders gesagt: Sie verlangen zwei Kopien, und Kubernetes hält dieses Versprechen.

Die Service Dokumentation beschreibt den Service als Methode, eine Netzwerkanwendung freizugeben, die als ein oder mehrere Pods läuft. Denn die IP Adressen der Pods können sich ändern. Ein Service bietet Ihnen allerdings eine Adresse, die gleich bleibt.

  • Pod: die kleinste Einheit, in der Container laufen.
  • Deployment: legt Pod Anzahl und Update Strategie fest.
  • Service: gibt Pods eine stabile Netzwerkadresse.
  • Node (Knoten): der Rechner, auf dem Ihre Pods laufen.
  • Namespace: eine logische Gruppe, die Ressourcen trennt.

Brauchen Sie Kubernetes wirklich?

Für die meisten Firmenwebseiten, Blogs und kleinen Onlineshops lautet die Antwort daher Nein. Zum Beispiel läuft eine WordPress, Laravel oder Node.js Anwendung auf einem einzelnen Server läuft ohne Kubernetes einfacher, günstiger und ruhiger. Kubernetes ist daher eine Investition in Komplexität.

Wenn Container für Sie neu sind, lesen Sie zuerst unseren Leitfaden zu Docker und Containern. Der Abschnitt zur Frage, ob Kubernetes nötig ist, beantwortet das ausführlich, deshalb wiederholen wir es hier nicht. Kurz gesagt reicht für einen Server und wenige Container oft Docker Compose. Diese Option vorher abzuwägen, spart Ihnen daher unter Umständen Wochen.

Kubernetes ergibt dennoch in einigen Fällen Sinn. Zum Beispiel kann Ihre App aus vielen Diensten bestehen, der Verkehr kann stark schwanken, oder Sie wollen automatische Skalierung und Updates ohne Ausfall. Außerdem lohnt es sich, wenn Ihr Team das Wissen für den Betrieb hat. Fehlt dieses Wissen, dann frisst die Lernkurve die Zeit für Ihre eigentliche Arbeit.

  • Eine Seite auf einem Server: Sie brauchen Kubernetes nicht.
  • Wenige Container und wenig Verkehr: Docker Compose genügt oft.
  • Viele Dienste, viel Verkehr und Autoskalierung: Denken Sie über Kubernetes nach.
  • Lernen oder Portfolio Projekt: Beginnen Sie mit minikube.

Was sollten Sie vor der Installation prüfen?

Prüfen Sie zunächst die Hardware, bevor Sie Kubernetes installieren. Die offizielle minikube Seite verlangt mindestens 2 CPUs, 2 GB freien Arbeitsspeicher und 20 GB freien Speicherplatz. Außerdem brauchen Sie eine Internetverbindung und einen Container oder Virtual Machine Manager wie Docker. Schließen Sie daher auf einem kleinen Laptop vorher andere Programme.

Die Anforderungen für k3s wirken dagegen leichter. Die offizielle Seite nennt für einen Server Knoten 2 Kerne und 2 GB RAM, für einen Agent Knoten 1 Kern und 512 MB RAM. Das sind Mindestwerte, daher kommt der Bedarf Ihrer eigenen Anwendungen noch dazu.

Zudem läuft k3s beim Betriebssystem auf den meisten modernen Linux Systemen, und die Dokumentation erwähnt Ubuntu und Debian. Sind Sie noch bei der Serverwahl, hilft Ihnen unser Beitrag zum Unterschied zwischen VPS, Cloud Server und VDS.

  • Erstens ein Linux Benutzer mit sudo Rechten für die Befehle.
  • Zweitens ein aktueller Paketmanager und Internetzugang.
  • Außerdem ein Backup oder Snapshot, damit Sie nach einem Servertest zurückgehen können.
  • Zudem genug Arbeitsspeicher, denn Cluster Komponenten brauchen selbst RAM.

Wie können Sie Kubernetes installieren, wenn Sie minikube nutzen?

Minikube startet auf Ihrem Rechner einen lokalen Kubernetes Cluster mit einem Knoten. Das ist der sicherste Weg zum Lernen, denn bei einem Fehler löschen Sie den Cluster und beginnen neu. Nutzen Sie ihn deshalb nicht als Produktivserver.

Unter macOS mit Homebrew genügt also eine Zeile. Die offizielle Startseite nennt zum Beispiel diesen Befehl.

brew install minikube

Unter Linux mit x86-64 laden Sie die stabile Binärdatei von der offiziellen Seite herunter und legen sie in Ihren Pfad. Laden Sie die Datei zunächst herunter, danach installieren Sie sie.

curl -LO https://github.com/kubernetes/minikube/releases/latest/download/minikube-linux-amd64sudo install minikube-linux-amd64 /usr/local/bin/minikuberm minikube-linux-amd64

Nutzen Sie Windows oder eine andere Prozessorarchitektur, folgen Sie der Auswahl auf der offiziellen Startseite von minikube. Dort sehen Sie dann die aktuellen Befehle für jedes Betriebssystem.

Welchen Treiber nutzt minikube und welchen sollten Sie wählen?

Minikube führt den Cluster nicht direkt in Ihrem Betriebssystem aus. Stattdessen läuft er in einem Container oder in einer virtuellen Maschine. Die offizielle Seite nennt Docker, QEMU, Hyperkit, Hyper-V und KVM als mögliche Treiber. Welcher passt, hängt allerdings von Ihrem System ab.

Ist Docker schon installiert, ist der Start damit also am praktischsten. Sie brauchen keine zusätzliche Software für virtuelle Maschinen, denn minikube startet seinen eigenen Container. Kennen Sie Docker noch nicht, erleichtert Ihnen das Lernen der Container Grundlagen diesen Schritt.

Schlägt die Treiberwahl fehl, bleiben Sie trotzdem ruhig. Die Meldung von minikube nennt den fehlenden Treiber und verweist auf die offizielle Treiberseite. Außerdem können Sie den Treiber später ändern, dafür löschen Sie den Cluster und starten ihn neu.

  • Docker vorhanden: Sie starten mit der geringsten Zusatzsoftware.
  • Virtuelle Maschine gewünscht: Wählen Sie einen Treiber, den Ihr System unterstützt.
  • Fehlermeldung erhalten: Lesen Sie den passenden Abschnitt der offiziellen Treiberseite.

Wie starten und prüfen Sie einen minikube Cluster?

Zunächst starten Sie nach der Installation den Cluster mit einem Befehl. Findet minikube einen passenden Treiber, zum Beispiel Docker, nutzt es ihn. Findet es keinen, gibt es einen Fehler aus und verweist auf die Treiberseite.

minikube start

Danach bestätigen Sie, dass der Cluster läuft. Der Befehl aus der offiziellen Dokumentation listet die Pods in allen Namespaces auf. Zudem gilt: Haben Sie kubectl nicht separat installiert, bringt minikube eine eigene Kopie mit.

kubectl get po -Aminikube kubectl -- get po -A

Möchten Sie eine grafische Oberfläche, öffnet minikube dashboard eine Weboberfläche. Zum Schluss pausiert minikube stop den Cluster. Alle minikube Cluster entfernen Sie mit minikube delete --all.

Kurz gesagt hat der Alltag drei Schritte: starten, ausprobieren, stoppen. Läuft der Cluster den ganzen Tag, dann verbraucht er Ihren Arbeitsspeicher und Akku.

Was ist k3s und wie unterscheidet es sich von minikube?

K3s ist eine schlanke Kubernetes Distribution, die als einzelne Binärdatei erscheint. Sie ist für wenige Ressourcen gebaut, deshalb greifen viele bei kleinen Servern und Edge Geräten dazu. Minikube ist andererseits ein lokales Lernwerkzeug.

Der Unterschied liegt also im Ziel. Minikube öffnen Sie zum Ausprobieren auf Ihrem Rechner und schließen es danach wieder. K3s installieren Sie auf einem Linux Server und lassen es dauerhaft laufen. Daher bringt k3s mehr Pflicht bei Sicherheit und Wartung mit. Wer auf einem Server Kubernetes installieren will, plant also Zeit für Pflege ein. Wenn Sie auf einem Server Kubernetes installieren, akzeptieren Sie diesen Unterschied am besten gleich, dann vermeiden Sie spätere Überraschungen.

Merkmalminikubek3s
HauptzweckLokales Lernen und TestenSchlanker Cluster auf einem Server
Wo es läuftLaptop oder DesktopLinux Server, VPS
Mindestressourcen (offiziell)2 CPUs, 2 GB Speicher, 20 GB FestplatteServer: 2 Kerne, 2 GB RAM
InstallationswegPaketmanager oder BinärdateiOffizielles Installationsskript
LebensdauerVorübergehend, leicht zu löschenLäuft dauerhaft
Risiko durch ErreichbarkeitGeringHoch, eine Firewall ist Pflicht

Wie können Sie Kubernetes installieren, wenn Sie nur einen Server mit k3s haben?

Die offizielle Schnellstartseite zeigt die Installation als einzelne Zeile. Deshalb geben wir diese Zeile nicht so wieder. Ein Skript aus dem Internet ohne Lesen auszuführen, heißt nämlich, unbekanntem Code die Adminrechte Ihres Servers zu geben. Laden Sie es deshalb zuerst herunter, lesen Sie es und führen Sie es erst dann aus.

Zunächst speichern Sie das Skript in einer Datei. Danach sehen Sie den Inhalt durch.

curl -sfL https://get.k3s.io -o k3s-install.shless k3s-install.sh

Haben Sie das Skript verstanden und vertrauen ihm, führen Sie es mit Adminrechten aus. Laut Dokumentation legt die Installation einen Server mit einem Knoten an und startet k3s als Dienst.

sudo sh k3s-install.sh

Die Installation bringt außerdem Werkzeuge wie kubectl, crictl und ctr mit, dazu die Skripte k3s-killall.sh und k3s-uninstall.sh. Dann ist Ihr Cluster nach wenigen Minuten bereit. Ein separates kubectl brauchen Sie also nicht.

Wer auf dem Server Kubernetes installieren will, folgt also drei Schritten: herunterladen, lesen, ausführen. Überspringen Sie daher keinen davon. Prüfen Sie die genauen Parameter und das aktuelle Verhalten des Skripts immer auf der Schnellstartseite von k3s. Möchten Sie eine bestimmte Version festlegen, lernen Sie auch diese Methode aus der offiziellen Dokumentation.

Wie prüfen Sie k3s und nutzen die kubeconfig Datei?

Prüfen Sie nach der Installation, ob der Knoten bereit ist. K3s bringt sein eigenes kubectl mit, daher rufen Sie es als k3s kubectl auf. Zeigt der Knoten den Status "Ready", läuft der Cluster. Ist er noch nicht bereit, warten Sie ein bis zwei Minuten und starten den Befehl erneut, denn die Komponenten brauchen beim Start einen Moment.

sudo k3s kubectl get nodessudo k3s kubectl get pods -A

Die kubeconfig Datei enthält die Adresse und die Zugangsdaten, die kubectl für den Cluster braucht. K3s schreibt sie nach /etc/rancher/k3s/k3s.yaml. Verbinden Sie sich von einem anderen Rechner, kopieren Sie diese Datei hinüber.

Allerdings gehört dazu eine wichtige Warnung. Denn die Datei gibt Administratorzugriff auf den Cluster. Behandeln Sie sie wie ein Passwort: Schicken Sie sie nie per E-Mail und legen Sie sie nie in einem öffentlichen Repository ab. Dann passen Sie nach dem Kopieren die Serveradresse an Ihren Server an. In unserem Beispiel sehen Sie eine Adresse aus dem Dokumentationsbereich wie 203.0.113.10.

  • Übertragen Sie die kubeconfig Datei nur über einen sicheren Kanal.
  • Geben Sie die Dateirechte außerdem nur den Benutzern, die sie brauchen.
  • Löschen Sie Kopien, wenn die Arbeit erledigt ist.
  • Nutzen Sie den Adminzugriff nicht für alltägliche Aufgaben.

Welche Fehler treten bei der Installation auf und wie beheben Sie sie?

Installationsfehler haben meist drei Quellen: zu wenige Ressourcen, ein fehlender Treiber sowie Netzwerk oder Firewall Probleme. Die Fehlermeldung zu lesen, löst also schon die Hälfte. Deshalb empfehlen wir Ihnen, die Meldung zu kopieren und in der offiziellen Dokumentation zu suchen.

Ist der Arbeitsspeicher knapp, starten minikube oder k3s unter Umständen nicht richtig. Schließen Sie dann andere Programme oder erweitern Sie den Speicher des Servers. Bleiben Sie unter den offiziellen Mindestwerten, wirkt der Cluster anfangs vielleicht gut, wird aber unter Last instabil.

Erreichen Sie den Server nicht von einem entfernten Rechner, prüfen Sie zuerst die Firewall. Zum Beispiel nennt die k3s Dokumentation Port 6443/TCP für den API Server. Öffnen Sie ihn allerdings nicht für alle, sondern erlauben Sie nur Ihre eigene IP Adresse.

  • Treiber nicht gefunden: Installieren Sie Docker oder einen anderen Manager und versuchen Sie es erneut.
  • Speicher oder Festplatte zu klein: Erweitern Sie die Ressourcen oder schließen Sie unnötige Programme.
  • Cluster nicht erreichbar: Prüfen Sie die Adresse in der kubeconfig und die Firewall.
  • Knoten nicht bereit: Warten Sie einige Minuten, dann zeigt kubectl describe node den Grund.

Was sind die wichtigsten kubectl Befehle?

Kubectl ist das Kommandozeilenwerkzeug, das mit Kubernetes spricht. Die Form ist einfach, denn sie besteht aus kubectl, eine Aktion und eine Ressource. Zum Beispiel listet kubectl get pods Ihre Pods auf. Die Tabelle unten deckt den größten Teil der täglichen Arbeit ab.

BefehlWirkung
kubectl get nodesListet Knoten und ihren Status
kubectl get podsListet Pods
kubectl get deploymentsListet Deployments
kubectl describe pod NAMEZeigt Details und Ereignisse eines Pods
kubectl logs NAMEZeigt das Protokoll des Containers
kubectl apply -f datei.yamlWendet die Definition einer YAML Datei an
kubectl delete -f datei.yamlLöscht die Ressourcen der Datei
kubectl scaleÄndert die Zahl der Kopien

Bei den meisten Befehlen nennen Sie mit dem Schalter -n einen Namespace. Lassen Sie ihn weg, dann nutzt kubectl den Standard Namespace. Der Schalter -A zeigt dagegen alle Namespaces auf einmal.

Ein Tipp: Listen Sie vor einem neuen Befehl die Ressourcen zunächst mit kubectl get auf, bevor Sie einen Namen tippen. So senken Sie das Risiko, die falsche Ressource zu löschen.

Wie stellen Sie Ihre erste App mit einem Deployment bereit?

Für Ihre erste App schreiben Sie eine YAML Datei. Sie beschreibt also einen einfachen Webserver mit zwei Kopien. Als Container nutzen wir das offizielle nginx Image. Im Betrieb legen Sie dagegen das Image Tag fest und verwenden Ihr eigenes Image. Stellen Sie sich das Beispiel als Demoseite für example.com vor.

apiVersion: apps/v1kind: Deploymentmetadata:  name: hello-webspec:  replicas: 2  selector:    matchLabels:      app: hello-web  template:    metadata:      labels:        app: hello-web    spec:      containers:        - name: web          image: nginx          ports:            - containerPort: 80          resources:            requests:              cpu: 50m              memory: 64Mi            limits:              memory: 128Mi

Speichern Sie die Datei als deployment.yaml und wenden Sie sie an. Danach beobachten Sie den Status.

kubectl apply -f deployment.yamlkubectl get deploymentskubectl get pods

Das offizielle Tutorial zeigt dieselbe Aufgabe mit einem Befehl: kubectl create deployment baut ein Deployment aus einem Image. Der YAML Weg hält Ihre Änderungen allerdings in einer Datei. So wenden Sie dieselbe Definition erneut an und legen sie in die Versionsverwaltung. Einzelheiten finden Sie im Kubernetes Tutorial zu Deployments.

Wie machen Sie die App mit einem Service erreichbar?

Allerdings laufen Pods laut Dokumentation in einem privaten, abgeschotteten Netzwerk. Standardmäßig sehen sie andere Pods und Services im selben Cluster, die Außenwelt dagegen nicht. Um sie von außen zu erreichen, legen Sie deshalb einen Service an.

Der Standardtyp ClusterIP macht die App nur innerhalb des Clusters erreichbar. NodePort öffnet einen festen Port auf der IP Adresse jedes Knotens. LoadBalancer nutzt den Lastverteiler eines Cloud Anbieters.

apiVersion: v1kind: Servicemetadata:  name: hello-webspec:  type: NodePort  selector:    app: hello-web  ports:    - protocol: TCP      port: 80      targetPort: 80      nodePort: 30080

Nach dem Anwenden hängt der Zugriff von der Umgebung ab. In minikube öffnet minikube service hello-web die Adresse. Bei k3s dagegen verbinden Sie sich mit der Server IP und dem NodePort. Für die Beispieladresse 203.0.113.10 ist das http://203.0.113.10:30080.

Für einen schnellen Test hilft auch kubectl port-forward deployment/hello-web 8080:80. Damit probieren Sie die App zum Beispiel lokal aus, ohne einen Port nach außen zu öffnen. Öffnen Sie einen NodePort, prüfen Sie daher Ihre Firewall Regeln.

Alle Service Typen finden Sie in der Kubernetes Dokumentation zu Services.

Wie skalieren und aktualisieren Sie die App?

Skalieren heißt, die Zahl der Kopien in einem Deployment zu ändern. Steigt der Verkehr, fügen Sie Kopien hinzu, sinkt er, nehmen Sie welche weg. Dafür genügt also ein Befehl. Skalieren hilft, doch fehlen dem Knoten Ressourcen, können die zusätzlichen Pods nicht starten und bleiben im Status Pending.

kubectl scale deployment hello-web --replicas=3kubectl get pods

Zum Aktualisieren ändern Sie das Image. Das Deployment tauscht alte Pods Schritt für Schritt gegen neue aus, daher läuft die App ohne Ausfall weiter. Am saubersten ändern Sie das Image Tag in der YAML Datei und führen kubectl apply erneut aus.

kubectl rollout status deployment/hello-webkubectl rollout undo deployment/hello-web

Der erste Befehl zeigt den Fortschritt des Updates. Der zweite kehrt zur vorigen Version zurück, falls etwas schiefgeht. Unumkehrbare Änderungen wie ein neues Datenbankschema holt er allerdings nicht zurück. Folgen Sie deshalb vor Datenbank Updates unserer Backup Strategie für Websites.

Wie diagnostizieren Sie einen Pod, der nicht läuft?

Bleiben Sie daher bei einem Fehler ruhig. Denn die Reihenfolge ist immer gleich. Zuerst sehen Sie sich den Status an, dann gehen Sie in die Details, zuletzt lesen Sie das Protokoll. Somit lösen diese drei Schritte die meisten Probleme.

  1. Führen Sie kubectl get pods aus und lesen Sie die Statusspalte. Pending, ImagePullBackOff und CrashLoopBackOff sind die häufigsten Problemzustände.
  2. Führen Sie kubectl describe pod NAME aus und lesen Sie den Abschnitt zu den Ereignissen. Gründe wie ein fehlendes Image oder zu wenige Ressourcen stehen dort.
  3. Führen Sie kubectl logs NAME aus, um die Fehlerausgabe der App selbst zu lesen.
  4. Prüfen Sie bei Bedarf die Ressourcen. Hat der Knoten keinen freien Speicher oder keine freie CPU, kann der Pod nicht starten.

ImagePullBackOff bedeutet zum Beispiel meist, dass der Image Name falsch ist oder der Zugriff auf eine private Registry fehlt. Pending deutet dagegen oft auf Ressourcenmangel hin.

Allerdings liegt die Ursache häufig in der Anwendung, nicht in Kubernetes. Eine falsche Umgebungsvariable kann zum Beispiel den Start der App verhindern. Daher bringt das Lesen des Protokolls schneller Ergebnisse als Raten.

Lösen Sie das Problem trotzdem nicht, kopieren Sie die Fehlermeldung und suchen Sie in der offiziellen Dokumentation. Geben Sie Fehlerausgaben nie mit kubeconfig, Passwörtern oder echten Domainnamen weiter.

Worauf sollten Sie bei der Sicherheit von Kubernetes achten?

Der Kubernetes API Server ist die Eingangstür des Clusters. Die Anforderungen von k3s nennen Port 6443/TCP für den API Server. Diesen Port für das ganze Internet zu öffnen, ist daher ein ernstes Risiko. Öffnen Sie ihn möglichst nur für Ihre eigene IP Adresse oder ein VPN.

Im Netzwerk gibt die Dokumentation eine weitere Warnung. Beschränken Sie Port 8472/UDP nicht, den Flannel VXLAN nutzt, kann womöglich jeder auf das Cluster Netzwerk zugreifen. Die offizielle Seite sagt außerdem, dass Sie bei aktiver Firewall die nötigen Regeln selbst freigeben.

Zudem machen auch einige Gewohnheiten bei der App einen Unterschied. Ziehen Sie Images aus vertrauenswürdigen Quellen, legen Sie Image Tags fest und schreiben Sie keine Passwörter in YAML Dateien. Auf der Serverseite helfen Ihnen unsere Anleitungen zu Fail2ban für den Serverschutz und zur CSF Firewall.

  • Öffnen Sie Port 6443 nicht für alle, sondern beschränken Sie ihn per IP.
  • Schützen Sie die kubeconfig Datei wie ein Passwort.
  • Legen Sie Image Tags fest und nutzen Sie vertrauenswürdige Quellen.
  • Verfolgen Sie System und Cluster Updates regelmäßig.
  • Betreuen Sie eine Webanwendung, lesen Sie auch die OWASP Top 10 Liste.

Was sollten Sie über Ressourcenverbrauch und Kosten wissen?

Kubernetes verbraucht Speicher und CPU schon für seine eigenen Komponenten. Die offiziellen Zahlen zeigen es: minikube verlangt 2 GB freien Speicher, ein k3s Server Knoten 2 GB RAM. Auf einem kleinen VPS bleibt Ihrer eigenen App nach dem Start des Clusters unter Umständen wenig Platz.

Deshalb sollten Sie in Ihren Pod Definitionen Anforderungen und Grenzen für Ressourcen setzen. Aus diesem Grund haben wir im Beispiel oben die Felder requests und limits ergänzt. Denn ohne Grenze kann ein einzelner Pod den gesamten Speicher belegen und die anderen verdrängen.

Bei den Kosten zählen drei Posten: Servermiete, Wartungszeit und das Risiko von Fehlern. Dabei kosten für die meisten kleinen Unternehmen Zeit und Risiko mehr als die Miete. Außerdem hängt Ihre Ladezeit davon ab, ob der Server wirklich reicht, daher lohnt ein Blick auf unseren Beitrag zum Performance Test mit Google Lighthouse.

Beispielrechnung (hypothetisch): Hat Ihr Server 4 GB RAM und die Cluster Komponenten brauchen 2 GB, bleiben etwa 2 GB für Apps. Das zeigt also, warum Sie den echten Verbrauch messen sollten, bevor Sie entscheiden. Eine zu knappe Speichergrenze lässt die App zudem oft neu starten, also stellen Sie die Werte mit Beobachtung ein.

Wann sollten Sie Kubernetes nicht selbst installieren, sondern Ihrem Hostinganbieter überlassen?

Die ehrliche Antwort lautet: Infrastruktur zu betreiben ist nicht unsere Aufgabe. Wir arbeiten nämlich an digitalem Marketing und Webentwicklung. Daher empfehlen wir Ihnen eine klare Grenze. Bauen Sie Ihren ersten Cluster nicht allein auf und betreiben Sie ihn nicht allein, wenn er einen Shop mit Umsatz oder ein System mit Kundendaten trägt.

Zudem brauchen im Produktivbetrieb Backups, Updates, Überwachung und Sicherheitspatches ständige Arbeit. Können Sie dafür keine Zeit geben, ist ein verwalteter Kubernetes Dienst oder das unterstützte Angebot Ihres Hostinganbieters sicherer. Bei der Wahl des Anbieters nutzen Sie die Kriterien aus unserem Leitfaden zur Wahl von Webhosting.

  • Live Shop oder Zahlungssystem: Nutzen Sie einen verwalteten Dienst oder die Hilfe des Anbieters.
  • Kundendaten und rechtliche Pflichten: Holen Sie sich Expertenhilfe.
  • Niemand beobachtet den Server: Bauen Sie keinen eigenen Cluster.
  • Lernen und kurze Tests: minikube oder k3s auf einem VPS passt.

Domain, DNS und SSL prüfen Sie mit unseren kostenlosen Werkzeugen für die DNS Abfrage und den SSL Check.

Welche guten Gewohnheiten sollten Sie nach dem Start des Clusters aufbauen?

Läuft der Cluster, beginnt die eigentliche Arbeit. Erstens: Die erste Gewohnheit ist, alle YAML Dateien in einer Versionsverwaltung zu halten. So sehen Sie, welche Änderung Sie wann gemacht haben, und gehen bei Bedarf zurück. Zum Auffrischen der Befehle hilft Ihnen unsere Anleitung zu den wichtigsten Git Befehlen.

Zweitens: Die zweite Gewohnheit ist, Ressourcen mit Namespaces zu trennen. Halten Sie Test und Live Arbeit im selben Namespace, löschen Sie leicht versehentlich das Falsche. Drittens schreiben Sie für jedes Deployment Anforderungen und Grenzen.

Schließlich ist die vierte Gewohnheit ein regelmäßiges Backup. Pods können verschwinden, dauerhafte Daten dürfen es nicht. Bei Anwendungen mit Zustand, etwa Datenbanken, ist der Verzicht auf Backups ein großes Risiko. Außerdem testen Sie Cluster Updates zuerst in einer Testumgebung.

  • Halten Sie YAML Dateien in der Versionsverwaltung.
  • Legen Sie Test und Live Arbeit in getrennte Namespaces.
  • Schreiben Sie für jeden Pod Anforderungen und Grenzen.
  • Sichern Sie oft und üben Sie die Wiederherstellung.
  • Testen Sie Updates zuerst in einer Testumgebung.

Wie räumen Sie den Cluster auf und entfernen ihn?

Ist Ihr Experiment vorbei, nützt das Entfernen des Clusters dem Speicher und der Sicherheit. Ein offen gelassener Cluster gleicht einer vergessenen Tür. Das Aufräumen bei minikube ist also einfach.

minikube stopminikube delete --all

Bei k3s bringt die Installation ein Deinstallationsskript mit. Die offizielle Schnellstartseite nennt den Namen k3s-uninstall.sh. Bevor Sie es auf einem Server ausführen, sichern Sie unbedingt alle Daten im Cluster.

sudo k3s-uninstall.sh

Denken Sie außerdem daran, die in der Firewall geöffneten Ports wieder zu schließen. Entfernen Sie die Regel für den NodePort und löschen Sie Kopien der kubeconfig. So lassen Sie also keine offene Tür zurück.

Was sollte Ihr nächster Schritt sein?

Einen Cluster aufzusetzen ist daher nur der Anfang. Wer Kubernetes installieren kann, muss es noch lange nicht sicher betreiben. Als nächsten Schritt packen Sie Ihre eigene App in einen Container und führen sie mit einem Deployment aus. Danach folgen Themen wie Umgebungsvariablen, dauerhafte Datenträger und Netzwerkregeln.

Nutzt Ihre App Node.js, lesen Sie zuerst unsere Anleitung zum Node.js Deployment auf Linux. So sehen Sie also, ob die einfache Methode reicht, bevor Sie zu Kubernetes wechseln.

Wer Kubernetes installieren will, legt also zuerst das Ziel fest. Zum Lernen ist also minikube der richtige Start. Für ein kleines Dauersystem passt k3s. Für ein kritisches System ist ein verwalteter Dienst der bessere Anfang.

Klären Sie Ihr Ziel, bevor Sie über Infrastruktur entscheiden. Wir helfen bei Webseiten, SEO und digitalem Marketing, und für die Infrastruktur empfehlen wir die Zusammenarbeit mit einem vertrauenswürdigen Hostinganbieter. Verfolgen Sie die offizielle Dokumentation, denn diese Werkzeuge ändern sich schnell.

Häufig gestellte Fragen

Wie können Sie Kubernetes installieren, und was ist der einfachste Weg?
Der einfachste Weg ist minikube. Sie installieren es mit Homebrew oder der offiziellen Binärdatei und öffnen mit minikube start einen lokalen Cluster. Wollen Sie einen schlanken Dauercluster auf einem Server, wählen Sie k3s. In beiden Fällen steuern Sie den Cluster mit kubectl. Prüfen Sie vorher die offiziellen Anforderungen: minikube verlangt 2 CPUs, 2 GB Speicher und 20 GB Festplatte.
Ist minikube oder k3s besser?
Beide dienen verschiedenen Aufgaben. Minikube ist zum Lernen und Testen auf Ihrem eigenen Rechner gedacht, und Sie können es frei stoppen und löschen. K3s ist ein schlanker Cluster, der dauerhaft auf einem Linux Server läuft. Zum Lernen beginnen Sie mit minikube. Für einen kleinen Test mit Produktivcharakter passt k3s, doch Sicherheit und Wartung liegen dann bei Ihnen.
Warum sollte ich das k3s Installationsskript nicht direkt ausführen?
Ein aus dem Internet geladenes Skript ohne Lesen mit Adminrechten auszuführen, ist riskant. Deshalb speichern Sie es zuerst in einer Datei, lesen es und führen es erst nach dem Verstehen aus. Der kurze Befehl in der offiziellen Dokumentation ist bequem, doch die Kontrolle bleibt bei Ihnen. Können Sie das Skript nicht beurteilen, fragen Sie Ihren Hostinganbieter oder einen Experten.
Brauche ich Kubernetes für eine kleine Webseite?
Meistens nicht. Eine Webseite oder ein Blog auf einem Server läuft ohne Kubernetes günstiger und einfacher. Kubernetes lohnt sich für Systeme mit vielen Diensten, schwankendem Verkehr und Bedarf an Autoskalierung. Wägen Sie vor der Entscheidung einfachere Optionen wie Docker Compose ab. Löst eine einfachere Option das Problem mit weniger Komplexität, ist sie meist die richtige.
Wo liegt die kubeconfig Datei von k3s und warum ist sie sensibel?
Laut offizieller Dokumentation schreibt k3s die kubeconfig Datei nach /etc/rancher/k3s/k3s.yaml. Die Datei gibt Administratorzugriff auf den Cluster, daher ist sie so wertvoll wie ein Passwort. Geben Sie sie nicht weiter, legen Sie sie nicht in ein öffentliches Repository und löschen Sie Kopien nach der Arbeit. Verbinden Sie sich von einem anderen Rechner, übertragen Sie die Datei über einen sicheren Kanal.
Wann sollte ich Kubernetes meinem Hostinganbieter überlassen?
Bauen Sie Ihren ersten Cluster nicht allein auf und betreiben Sie ihn nicht allein, wenn er einen Shop mit Umsatz, ein Zahlungssystem oder Kundendaten trägt. Backups, Updates und Sicherheitspatches verlangen ständigen Aufwand. Können Sie dafür keine Zeit geben, wählen Sie einen verwalteten Kubernetes Dienst oder das unterstützte Angebot Ihres Anbieters. Selbst betreiben passt für Lernen und kurze Tests.
  • kubernetes
  • minikube
  • k3s
  • kubectl
  • kubernetes installieren
  • container
  • vps
  • software
Teilen:
Talha Aslan

Google Partner und Experte für digitales Marketing. Seit 2012 praktisch in SEO, Google Ads, Webdesign und E-Commerce Projekten; jeder Beitrag hier stammt aus dieser Erfahrung.

Nächstes Projekt

Sprechen wir über Ihr Projekt.

Ihre Anfrage geht direkt an Talha Aslan und Team: Strategie von Talha, Umsetzung durch ein erfahrenes Team. Das Erstgespräch ist kostenlos, wir hören zu und melden uns mit einer klaren Roadmap.