k3d
k3d ist ein Tool, das die einfache Bereitstellung von K3s (einer leichtgewichtigen Kubernetes-Distribution von Rancher Labs) in Docker-Containern ermöglicht. Mit k3d können Benutzer lokal Kubernetes-Cluster aufsetzen, ohne aufwendige Setups, was es ideal für Entwicklungs- und Testumgebungen macht. Es stellt eine schnelle und ressourcenschonende Möglichkeit dar, Kubernetes lokal zu verwenden.
Vorteile von k3d:
- Leichtgewichtig: Da K3s weniger Ressourcen benötigt, läuft es gut auf Entwicklungsmaschinen.
- Schnelles Setup: Ein K3s-Cluster kann innerhalb von Sekunden erstellt und gelöscht werden.
- Docker-Integration: Da
k3d die Container-Runtime Docker verwendet, lässt es sich nahtlos mit bestehenden Docker-Workflows integrieren.
Beispiele für k3d-Befehle:
k3d cluster create <name> – Erstellt einen neuen K3s-Cluster.
k3d cluster delete <name> – Löscht einen bestehenden K3s-Cluster.
k3d cluster list – Zeigt alle aktuell laufenden K3s-Cluster an.
Mit k3d kann man Kubernetes-Cluster für lokale Tests und Entwicklungen schnell erstellen, ohne komplexe Cloud-Setups oder Virtualisierungen, was es ideal für Entwickler macht, die Kubernetes-Anwendungen schnell testen möchten.
Installation
Linux
| Installation |
|---|
| curl -s https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | bash
|
Windows
Commands
cluster
| Cluster mit 1 Controllern und 3 Agents erstellen |
|---|
| k3d cluster create demo --api-port 6550 -p "80:80@loadbalancer" --agents 3
|
| Prüfen ob ich mit dem k3d-demo Cluster verbunden bin |
|---|
| kubectl config current-context
|
| Prüfen welche Nodes auf dem k3d-demo Cluster vorhanden sind |
|---|
| |
Um sicherzustellen, dass bestimmte Nodes in einem Kubernetes-Cluster keine allgemeinen Workloads erhalten, können sogenannte Taints verwendet werden. Taints verhindern, dass Pods ohne entsprechende Toleration auf diesen Nodes geplant werden. Dies ist nützlich, um beispielsweise Master-Nodes für spezielle Aufgaben zu reservieren.
NoSchedule sorgt dafür, dass neue Pods auf diesen Nodes nur geplant werden, wenn sie eine passende Toleration für den Taint besitzen. So bleiben die Nodes für spezifische Rollen reserviert und stehen nicht für allgemeine Workloads zur Verfügung.
| Nodes mit einem NoSchedule-Taint versehen |
|---|
| kubectl taint nodes k3d-demo-server-0 node-role.kubernetes.io/master=:NoSchedule
|
kubeconfig
Die Kubeconfig wird automatisch in deine aktuelle Kubeconfig gemerged.
Wenn der Cluster gelöscht wird, wird die Kubeconfig des Clusters wieder entfernt.
Mit dem folgenden Befehl kannst du die aktuelle Kubeconfig des Clusters ausgeben.
So hast du die Möglichkeit, sie als eigenständige Datei zu speichern und zu verwenden.
| kubeconfig für den Cluster erhalten |
|---|
| |
Links