Einen lokalen Cluster einrichten und mit kubectl starten
Betreibe einen Einzelknoten-Cluster mit minikube, verbinde dich mit kubectl und lerne die Befehle, die du täglich nutzt.
Produktive Cluster haben viele Knoten, aber zum Lernen willst du einen auf deiner eigenen Maschine. Gängige Optionen sind minikube, kind und die in Docker Desktop eingebaute Kubernetes-Option. Diese Anleitung nutzt minikube mit dem Docker-Treiber. Die kubectl-Befehle sind auf jedem von ihnen identisch, und auf jedem echten Cluster.
Ein Container-Werkzeug, minikube und kubectl installieren
minikube braucht entweder eine Container-Runtime oder eine virtuelle Maschine, um seinen Knoten zu hosten. Docker ist die häufigste Wahl, installiere also zuerst Docker Desktop (oder Docker Engine unter Linux) und stelle sicher, dass es läuft. Installiere dann minikube und kubectl. Unter macOS mit Homebrew:
brew install minikube kubectl
Für andere Systeme folge der minikube-Installationsseite und der kubectl-Installationsdokumentation, die aktuelle Anleitungen für jedes Betriebssystem haben. minikube braucht etwa 2 CPUs, 2 GB freien Speicher und 20 GB Plattenplatz.
Den Cluster starten
minikube start --driver=docker
minikube status
Der erste Start ist langsam, weil minikube die benötigten Images herunterlädt. Die Treiber-Einstellung bedeutet, dass der gesamte minikube-Knoten als Docker-Container auf deiner Maschine läuft. Innerhalb dieses Knotens führt Kubernetes deine Pods mit seiner eigenen Container-Runtime aus, es gibt also zwei Schichten von Containern. Das kann anfangs verwirrend wirken, hat aber keinen Einfluss darauf, wie du den Cluster nutzt.
Bestätigen, dass kubectl ihn erreichen kann
kubectl cluster-info
kubectl get nodes
Du solltest einen Knoten mit der Rolle control-plane und dem Status Ready sehen. Dieser einzelne Knoten betreibt sowohl die Control Plane als auch deine Workloads, genau die in der Architektur-Anleitung beschriebene Abkürzung für die lokale Entwicklung.
kubeconfig und Kontexte verstehen
Damit kubectl mit einem Cluster sprechen kann, braucht es die Adresse und die Zugangsdaten des Clusters. Es liest sie aus einer kubeconfig-Datei, standardmäßig ~/.kube/config, und minikube start fügt einen Eintrag für dich hinzu. Jeder Eintrag kombiniert einen Cluster, einen Benutzer und optional einen Standard-Namespace zu einem Kontext:
kubectl config get-contexts
kubectl config current-context
kubectl config use-context minikube
Prüfe den aktuellen Kontext, bevor du etwas Destruktives ausführst. Enthält deine kubeconfig auch einen Staging- oder Produktions-Cluster, entscheidet der aktuelle Kontext, welchen deine Befehle treffen.
Die Alltagsbefehle lernen
kubectl get pods # Pods im aktuellen Namespace auflisten
kubectl get pods -A # Pods in allen Namespaces auflisten
kubectl describe pod NAME # Details und letzte Events eines Pods
kubectl logs NAME # die Ausgabe eines Containers
kubectl delete pod NAME # einen Pod entfernen
kubectl api-resources # jeder dem Cluster bekannte Ressourcentyp
kubectl explain pod.spec # eingebaute Referenz für jedes Feld
kubectl get --help # Hilfe zu jedem Befehl
kubectl explain solltest du dir merken: Es dokumentiert jedes Feld jeder Ressource direkt aus der API des Clusters, sodass du das Terminal selten verlassen musst, um ein Feld nachzuschlagen.
Wenn du für den Tag fertig bist, pausiert minikube stop den Cluster und minikube delete entfernt ihn vollständig.
Beliebte Anleitungen
-
Was Kubernetes ist und welche Probleme es löst Warum Container allein nicht mehr skalieren und wie Kubernetes eine Gruppe von Maschinen zu einer Plattform macht. -
Wie ein Kubernetes-Cluster funktioniert: Control Plane und Knoten Die Komponenten, die einen Cluster am Laufen halten, und was zwischen kubectl apply und einem laufenden Container passiert. -
Deployments: Skalieren, Selbstheilung und Rolling Updates Betreibe Replikas eines Pods, aktualisiere sie ohne Ausfallzeit und rolle zurück, wenn ein Release schiefgeht. -
Services: Stabiles Networking für kurzlebige Pods Gib Pods eine stabile Adresse, stelle sie innerhalb und außerhalb des Clusters bereit und beschränke, wer mit wem sprechen darf. -
Einen fehlschlagenden Pod debuggen: describe, logs, exec und port-forward Eine wiederholbare Checkliste, um herauszufinden, warum ein Pod Pending ist, abstürzt oder nicht antwortet.