Kubernetes

16. März 2026

Lang: cs en de es

Ich bin der Meinung, wenn ein IT-Spezialist eine Servertechnologie kennenlernen und regelmäßig nutzen möchte, ist es ideal, den Server mit dieser Technologie selbst zu installieren. Installieren wir also Kubernetes und führen dann die erste Bereitstellung durch.

Was ist Kubernetes

Kubernetes (kurz: K8S) ist eine Container-Management-Plattform, mit der Sie Ihren Anwendungen Skalierbarkeit und Hochverfügbarkeit bieten können. Da es sich bei Kubernetes um eine Open-Source-Lösung handelt, hat es sich zum Standard für die Ausführung von Cloud-Anwendungen entwickelt. Kubernetes abstrahiert Hardwareressourcen und bietet eine einheitliche API für die Ressourcenverwaltung.
Kubernetes setzt das Prinzip der deklarativen Konfiguration um. Sie definieren den gewünschten Zustand in YAML-Dateien und Kubernetes arbeitet kontinuierlich daran, den Ist-Zustand mit dieser Spezifikation abzugleichen.

Wozu Kubernetes gut ist

Kubernetes ist überall dort nützlich, wo man automatisch skalieren muss, Hochverfügbarkeit bieten und Zugriffsrechte für mehrere Benutzer innerhalb einer einzigen Leistungsressource verwalten. Das sind genau die Bedürfnisse, die Unternehmen haben.
Für kleine Unternehmen ist Kubernetes nur ein weiterer unnötiger Overhead.
Mittlere Unternehmen können von der Skalierung profitieren. Sie werden Kubernetes nicht selbst betreiben, aber sie werden Kubernetes-Infrastruktur als Service kaufen.

Kubernetes eignet sich gut für den Betrieb von Microservice-Architekturen. Sie werden also nicht einfach eine typische Anwendung nach Kubernetes verschieben, sondern haben mehr oder weniger Arbeit zu erledigen. Es ist also ratsam, darüber nachzudenken und zu bewerten, ob Sie Kubernetes tatsächlich nutzen werden.

Eine der Voraussetzungen für die Nutzung von Kubernetes sind Kenntnisse der Docker-Technologie und des Linux-Betriebssystems auf fortgeschrittenem Niveau. Denn um Anwendungen in Kubernetes auszuführen, müssen Sie Docker-Images erstellen und Docker-Container verwenden. Außerdem brauchen Sie ein gutes Verständnis des Linux-Betriebssystems und der Netzwerktechnik, um Kubernetes auf einem Server zu installieren und diesen Linux-Server dann mit Kubernetes zu verwalten.

Geschichte von Kubernetes

Kubernetes ist als Open-Source-Nachfolger eines internen Google-Systems namens Borg entstanden, das Google seit den frühen 2000er Jahren für die Orchestrierung seiner riesigen Rechenzentren verwendet hat (und immer noch verwendet).

  • Im 2014: kündigte Google das Kubernetes-Projekt (K8s) offiziell an und gab es als Open-Source frei.
  • In 2015: wurde die Version 1.0 an die neu gegründete CNCF (Cloud Native Computing Foundation) übergeben.

Heute gehört Kubernetes nicht mehr zu Google, sondern wird von der Community unter der Schirmherrschaft der Linux Foundation gepflegt, Das macht es zum globalen Standard für Cloud-Anwendungen.

Cluster-Architektur

Kontrollebene (Master)

  • kube-apiserver: Gateway für die gesamte Kommunikation (REST).
  • etcd: Verteilte Key-Value-Datenbank zur Persistenz des Cluster-Status.
  • kube-scheduler: Algorithmus zur Auswahl des optimalen Knotens für neue Pods.
  • kube-controller-manager: Führt Prozesse als Node Controller oder Job Controller aus.

Worker-Knoten

  • kubelet: Der primäre Agent, der die Befehle des Masters auf einem bestimmten Rechner ausführt.
  • kube-proxy: Verwaltet Netzwerkregeln (IPtables/IPVS) für das Routing des Datenverkehrs.
  • Container Runtime: Die Schicht, die Container ausführt (z.B. containerd).

Konzepte

Ohne die Kenntnis von Konzepten geht es nicht, also machen wir uns zunächst mit den grundlegenden Konzepten vertraut:

Schlüsselabstraktionen (Objekte)

Objekt Beschreibung
Pod Die kleinste atomare Einheit, ein gemeinsamer Netzwerk- und Speichernamensraum für einen oder mehrere Container.
Bereitstellung Controller für zustandslose Anwendungen, bietet Update-Strategie (RollingUpdate).
Service Abstraktion für stabile Netzwerkidentität (ClusterIP, NodePort, LoadBalancer).
ConfigMap/Secret Injiziert Konfigurations- und sensible Daten in die Containerumgebung.

Was ist ein Namespace?

Mit einem Namespace können Sie einen Cluster virtuell in mehrere Teile aufteilen. Ein Namespace fungiert als isolierte Arbeitsumgebung für verschiedene Projekte oder Teams.
Hippically, Sie erstellen einen neuen separaten Namespace für jedes neue Projekt.

Namespace ermöglicht es Ihnen,:

  • Trennung: Verhindert Namenskonflikte (z.B. mehrere "Web"-Anwendungen).
  • Kontingente: Möglichkeit, CPU/RAM für ein bestimmtes Team zu begrenzen.
  • Beispiel: prod, staging, dev.
  • Rechte: Rechte nach Namespace setzen.

Was ist Ingress?

Ingress ist ein intelligenter Load Balancer (Layer 7), der den Zugriff von außen auf Anwendungen innerhalb des Clusters kontrolliert.

Ingress ermöglicht:

  • Routing: Leitet den Verkehr nach URL (domain.cz/api vs domain.cz/web).
  • SSL/TLS: Zentrale Terminierung von HTTPS-Verbindungen (Zertifikatsverwaltung durch cert-manager an einer Stelle).
  • Öffentliche IPv4-Freigabe: Dutzende von Anwendungen können hinter einer öffentlichen IPv4-Adresse laufen. (Speichern von öffentlichem IPv4)

Normalerweise kann diese Aufgabe von Nginx ingress oder Treafik ingress

Installation von Kubernetes

Es gibt etwa vier Hauptoptionen, um Kubernetes einfach zu installieren:

  • Microk8s
  • K3s
  • K3d
  • Minicube

Microk8s vs K3s vs Minikube Vergleich.
Persönlich habe ich für einen grundlegenden Versuch den K3s verankert. Für einen langfristigen (wenn auch testweisen) Einsatz empfehle ich jedoch definitiv, Kubernetes komplett manuell zu installieren so dass man die volle Kontrolle über die resultierende Installation hat.

Microk8s

MicroK8s ist eine leichtgewichtige, zertifizierte Kubernetes-Distribution von Canonical (den Machern von Ubuntu), die darauf ausgelegt ist, mit minimalen Ressourcenanforderungen, aber mit der vollen Leistung eines großen Orchestrators zu laufen.

🚀 Schnell und leichtgewichtig Installation in weniger als 60 Sekunden. Minimale RAM- und CPU-Anforderungen, ideal für Edge und IoT.

>

🔌 Ein-Klick-Add-ons Einfache Aktivierung von Funktionen (DNS, Dashboard, GPU, Istio) mit einem einzigen Befehl.

🛡️ Sicherheit und Isolierung Läuft als Snap-Paket - isoliert vom System mit automatischen Atomic Updates.

🔄 Hochverfügbarkeitsbetrieb MicroK8s unterstützt den Multi-Node-Cluster-Betrieb. Das heißt, automatische Replikation der Steuerebene, wenn 3 oder mehr Knoten verbunden sind.

MicroK8s ist für Einsteiger oft der beliebteste Weg, Kubernetes auf Linux oder anderen Betriebssystemen mit einem virtuellen PC zu installieren.

K3S

K3S ist die vollständig zertifizierte minimalistische Kubernetes-Distribution von Rancher Lab, die für IoT-, Edge- und CI/CD-Systeme entwickelt wurde.

📦 Eine Binärdatei Alles, was Sie brauchen (einschließlich containerd und Flannel), befindet sich in einer Datei von etwa 100 MB.

📉 Geringer Overhead Verbraucht weniger als 512 MB RAM, da unnötiger Code und Cloud-Treiber entfernt wurden.

🗄️ SQL anstelle von etcd Verwendet das leichtgewichtige SQLite als Standarddatenbank, unterstützt aber auch PostgreSQL oder MySQL.

🛠️ Helm Ready Enthält den Helm Controller, der die automatische Bereitstellung von Manifesten und Diagrammen nach dem Start ermöglicht.

Standardmäßig verwendet K3S Traefik als "Ingress" und "Proxy". Ich persönlich bevorzuge die Verwendung von NGINX. Ich habe keine Erfahrung mit Traefik, Daher verwende ich lieber NGINX, mit dem ich Erfahrung habe. Aus Sicht der Konfiguration müssen Sie die Notation allerdings sowieso neu lernen, da die Konfiguration über YAML erfolgt.

So habe ich k3s ohne Treafik installiert:

apt-get install curl iptables
export INSTALL_K3S_EXEC=" --disable=traefik"
curl -sfL https://get.k3s.io | sh -.
#Start der Kubernetes-Dienste
systemctl status k3s.service
#überprüfen Sie die Funktionalität
k3s kubectl get node
kubectl get subs -A
Anschließend können Sie Nginx als Ingress installieren.

Weitere Informationen:
Wie man einen k3s-Cluster mit Nginx Ingress-Controller erstellt
Wie man k3s in einem LXC-Container betreibt

K3d

K3d ist ein leichtgewichtiger Wrapper für die Ausführung von K3s in Docker.

K3d Eigenschaften

🐳 Docker-nativ Jeder Knoten des Clusters ist ein eigener Docker-Container. Sie müssen nur Docker installiert haben.

⚡ Extreme Geschwindigkeit Es dauert buchstäblich nur Sekunden, um einen ganzen Multi-Node-Cluster zu erstellen und zu betreiben.

💻 Multi-Knoten auf einem Laptop Einfaches Simulieren komplexer Topologien (mehrere Master und Worker), ohne dass virtuelle Maschinen erforderlich sind.

🛠️ Großartig für CI/CD Ideal für automatisierte Tests - Sie erstellen den Cluster, testen die Anwendung und löschen ihn sofort wieder.

🌐 Hot Reloading Unterstützung für lokale Registrierungen und einfaches Port-Mapping von localhost direkt zum Cluster.

Minicube

Minicube kann mit verschiedenen Treibern laufen, so dass man Kubernetes über verschiedene Technologien betreiben kann.

Im Einzelnen können Sie die folgenden Technologien verwenden, um Kubernetes mit Minicube auszuführen:

  • docker
  • kvm2
  • qemu2
  • podman
  • virtualbox

Wie man mit Minicube anfängt

Videotutorials zur Installation und erstmaligen Verwendung von Kubernetes

Videotutorial zur Installation von Kubenetes mit K3s inklusive der Installation von Nginx ingress:

Stellen Sie zunächst eine einfache Webanwendung in Kubernetes bereit, um die Funktionalität von Kubernetes zu überprüfen:

PS: das Beispiel-Docker-Image kann auf einem Server mit ARM-CPU ausgeführt werden.

Verschlüsseln wir SSL/TLS-Zertifikate mit certmanager:

Sonstige Dienste

Wenn Sie irgendwelche Anwendungen ausführen, müssen Sie die Daten auf der Festplatte oder in einer Datenbank speichern. Wie macht man das?
Eine standardmäßige und effiziente Lösung, um eine Datenbank für Kubernetes-Projekte zu betreiben, ist es, die Datenbank als Standardsystemdienst zu betreiben, nicht in Kubernetes. Wenn es sich um ein Storage handelt und man keinen Multi-Node-Cluster verwendet, ist die einfachste und effizienteste Lösung für Storage die Verwendung von lokalem Storage. Ja, das bedeutet, dass Sie Ihre Anwendung nicht über mehrere Knoten skalieren können. Sobald Sie einen Multi-Node-Cluster haben, können Sie NFS oder verteilten Speicher als Speicher verwenden. Longhorn oder Ceph, aber es gibt auch andere.

Abschluss

Kubernetes ist ein mächtiges Werkzeug. Allerdings ist es aufgrund der Komplexität der Installationsadministration und nicht zuletzt der Komplexität der Vorbereitung einer Anwendung für den Betrieb in Kubernetes schwierig, Ich empfehle Ihnen, zunächst zu überlegen und mit Ihrem Berater zu besprechen, ob Sie tatsächlich von Kubernetes profitieren werden.
Wenn Sie Anwendungen in Kubernetes laufen lassen wollen helfen, bin ich für Sie da, also kontaktieren Sie mich und bitten Sie um ein Beratungsgespräch und dann können wir mit der Zusammenarbeit beginnen.

Dieser Artikel ist in erster Linie als Anleitung gedacht, wie man eine Kubernetes-Umgebung zu Testzwecken einrichtet. Wenn Sie eine Produktionsumgebung benötigen, empfehle ich Ihnen, sich eingehender mit Kubernetes zu beschäftigen oder eine einen Linux-Server-Spezialisten.

Artikel zu einem ähnlichen Thema

SAP HANA Datenbank
Befehl AT
Docker build multiarch image
VMware vs. Proxmox: Leistungsvergleich
GitLab CI/CD: Testautomatisierung und Anwendungsbereitstellung
VPS von VMware zu Proxmox migrieren
VMware-Lizenzierungsänderung
Ausführen von Microsoft SQL Server unter Linux
Sicherung: der Proxmox Backup Server
Linux als Router und Firewall
Hochladen eines Docker-Images in die Docker-Registry
Linux: Verwaltung logischer Datenträger
Linux-Software-RAID
Ausführen einer Webanwendung hinter einem Proxy
Migration von Postfächern
Mehrstufige Docker-Erstellung
Sichern Ihrer Daten durch Einschalten des Computers
Podman
Importieren von Windows in die Proxmox-Virtualisierung
Docker und PHP-Mail
Proxmox-Virtualisierung
Docker und Cron
Lenovo ThinkPad X1 Carbon: Inbetriebnahme des LTE-Modems EM7544
Yocto-Projekt: Erstellen eines eigenen Betriebssystems für eingebettete Geräte
Vorbereiten eines Linux-Servers für die Ausführung einer Webanwendung in Python
Wie man eine schlechte Dateifreigabeleistung in Docker behebt
Wie man Docker richtig einsetzt
Installation von Linux auf einem dedizierten HPE ProLiant DL320e Server
Wie man eine Webanwendung einem Belastungstest unterzieht
Warum das JFS-Dateisystem verwenden
Booten von einer 4TB-Festplatte mit GTP unter UEFI
Btrfs-Dateisystem
Raspberry PI
WINE - Ausführen von Windous Programmen unter Linux
GNU/Linux-Betriebssystem

Newsletter

Wenn Sie daran interessiert sind, gelegentlich Neuigkeiten per E-Mail zu erhalten.
Sie können sich registrieren, indem Sie Ihre E-Mail-Adresse eingeben News-Abonnement.


+