Kubernetes Kubernetes

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.

10 min Anfänger

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