Du möchtest dein Docker Compose Setup auf Kubernetes deployen? Diese Anleitung zeigt dir, wie du mit dem Tool Kompose ganz einfach deine Docker Compose Datei in Kubernetes-Manifeste umwandelst und auf einem Kubernetes-Cluster ausführst – egal ob du Windows, Mac oder Linux nutzt.


Einführung

Mit Docker Compose kannst du Anwendungen schnell und einfach lokal entwickeln und testen. Für den produktiven Betrieb oder größere Projekte ist Kubernetes die bessere Wahl. Mit Kompose wandelst du deine Docker Compose Konfiguration automatisch in Kubernetes-Manifeste um – und kannst so ganz einfach auf Kubernetes migrieren.


Voraussetzungen

Bevor du startest, benötigst du folgende Tools:

  • Docker und Docker Compose (z.B. Docker Desktop)
  • Kubernetes-Cluster (z.B. Minikube, Docker Desktop Kubernetes, Microk8s oder Cloud-Cluster)
  • kubectl (Kubernetes Command Line Tool)
  • Kompose (Tool zur Umwandlung von Docker Compose in Kubernetes Manifeste)

1. Docker Compose Setup lokal testen

Bevor du migrierst, solltest du dein Setup lokal testen.

  1. Erstelle deine docker-compose.yml Datei mit allen Services.
  2. Starte die Container lokal:
docker compose up -d
  1. Prüfe, ob alle Container laufen und erreichbar sind:
docker ps
- Öffne die Webinterfaces im Browser (z.B. `http://localhost:9191` für PowerDNS-Admin).
- Teste die Funktionalität.

2. Kompose installieren

Windows

  1. Lade die Kompose Windows-Executable von der offiziellen GitHub-Seite herunter:
  2. Lege die Datei in einen Ordner, der im PATH ist (z.B. C:\Program Files\Kompose).
  3. Öffne PowerShell und teste die Installation:
kompose version

Mac

  1. Mit Homebrew installieren:
brew install kompose
  1. Oder manuell von GitHub herunterladen (wie bei Windows).
  2. Teste die Installation:
kompose version

Linux

  1. Lade das Binary herunter und mache es ausführbar:
curl -L https://github.com/kubernetes/kompose/releases/download/v1.34.0/kompose-linux-amd64 -o kompose
chmod +x kompose
sudo mv kompose /usr/local/bin/
  1. Teste die Installation:
kompose version

3. Docker Compose in Kubernetes Manifeste umwandeln

  1. Wechsle in das Verzeichnis mit deiner docker-compose.yml:
cd /pfad/zu/deinem/projekt
  1. Führe Kompose aus:
kompose convert
  1. Es werden mehrere .yaml Dateien erzeugt (Deployments, Services, Volumes).

4. Kubernetes Cluster vorbereiten

Windows \& Mac

  1. Docker Desktop:
    • Öffne Docker Desktop.
    • Gehe zu SettingsKubernetes.
    • Aktiviere Kubernetes und klicke auf Apply & Restart.

Linux

  1. Minikube installieren und starten:
minikube start
  1. Prüfe den Cluster:
kubectl get nodes

5. Kubernetes Manifeste deployen

  1. Deploye alle Manifeste:
kubectl apply -f .
  1. Prüfe den Status:
kubectl get pods
kubectl get services
  1. Warte, bis alle Pods den Status Running haben.

6. Zugriff auf Services und Webinterfaces

  1. Nutze kubectl get services, um die IPs und Ports zu sehen.
  2. Öffne Webinterfaces über NodePort oder LoadBalancer im Browser:
    • Beispiel: http://<IP-des-Clusters>:<NodePort>
    • Bei Docker Desktop Kubernetes: http://localhost:<NodePort>

7. Tipps und Fehlerbehebung

  • Prüfe Logs mit:
kubectl logs <pod-name>
  • Prüfe Netzwerk und Firewall.
  • Nutze kubectl describe pod <pod-name> für Details.

8. Datenmigration (optional)

Wenn du Daten aus deiner lokalen Datenbank übernehmen möchtest:

  1. Exportiere Daten aus Docker-Container:
docker exec -it pdns-db mysqldump -u root -p powerdns > powerdns.sql
  1. Importiere sie in Kubernetes-Pods:
    • Kopiere die Datei in den Pod:
kubectl cp powerdns.sql <pod-name>:/tmp/powerdns.sql
- **Importiere die Daten:**
kubectl exec -it <pod-name> -- mysql -u root -p powerdns < /tmp/powerdns.sql

9. Fazit

Mit dieser Anleitung kannst du dein Docker Compose Setup einfach und sicher in Kubernetes migrieren – egal ob du Windows, Mac oder Linux nutzt.
Kompose wandelt deine Konfiguration automatisch in Kubernetes-Manifeste um und kubectl übernimmt das Deployment und die Verwaltung.


Viel Erfolg bei deiner Kubernetes-Migration!