Was sind Docker & Kubernetes?
Docker ist eine Plattform zur Containerisierung von Anwendungen – sie verpackt Software samt aller Abhängigkeiten in isolierte, portable Einheiten (Container). Kubernetes (K8s) ist ein Orchestrierungssystem, das diese Container im großen Maßstab verwaltet, skaliert und überwacht.
Docker: Container-Grundlagen
Ein Docker-Container enthält alles, was eine Anwendung braucht:
- Anwendungscode
- Laufzeitumgebung (z.B. Node.js, Python)
- Betriebssystem-Bibliotheken
- Konfigurationsdateien
Docker vs. Virtuelle Maschinen
| Eigenschaft | Docker Container | Virtuelle Maschine |
|---|---|---|
| Startzeit | Sekunden | Minuten |
| Größe | MBs | GBs |
| Betriebssystem | Teilt den Host-Kernel | Eigenes OS |
| Performance | Nahezu nativ | Overhead durch Hypervisor |
| Isolation | Prozess-Level | Hardware-Level |
Kubernetes: Container-Orchestrierung
Kubernetes übernimmt die Verwaltung vieler Container:
- Deployment: Automatisches Ausrollen neuer Versionen
- Skalierung: Pods hoch- und herunterskalieren nach Last
- Self-Healing: Abgestürzte Container werden automatisch neu gestartet
- Load Balancing: Anfragen werden gleichmäßig verteilt
- Service Discovery: Container finden sich gegenseitig über DNS
Typischer Workflow
- Dockerfile schreiben: Build-Anweisungen für den Container definieren
- Image bauen:
docker builderstellt ein Container-Image - Registry: Image in eine Registry (Docker Hub, GitLab Registry) pushen
- Deployment: Kubernetes zieht das Image und startet die Container
- Monitoring: Überwachung via Grafana, Prometheus
Einsatzgebiete
- Microservices: Jeder Service läuft in seinem eigenen Container
- CI/CD-Pipelines: Konsistente Build- und Testumgebungen
- KI-Anwendungen: LLMs und RAG-Pipelines containerisiert betreiben
- IoT-Backends: Skalierbare Datenverarbeitung für IoT-Plattformen
Vorteile
- Portabilität: "Works on my machine" – überall
- Reproduzierbarkeit: Identische Umgebungen in Entwicklung, Test und Produktion
- Skalierbarkeit: Von einem Container bis zu Tausenden
- Effizienz: Bessere Ressourcenauslastung als virtuelle Maschinen
