Proxmox Load Balancer in Docker
Balancing mitts Docker in Proxmox PVE
In diesem Beitrag möchte ich eine Lösung vorstellen, mit der der Proxmox Load Balancer bequem als Docker-Container betrieben werden kann. Der Proxmox Load Balancer sorgt dafür, dass die RAM-Auslastung in einem Proxmox-Cluster automatisch ausgeglichen wird, was die Effizienz und Verteilung der Ressourcen verbessert. Ich habe dafür einen eigenen Docker-Container gebaut, der die Integration und Nutzung des Load Balancers in bestehenden Umgebungen deutlich erleichtert.
Was macht der Proxmox Load Balancer?
Dieses Skript konzentriert sich speziell auf die RAM-Auslastung innerhalb eines Proxmox-Clusters, während die CPU-Balancierung bewusst ausgeklammert wird. Einige der herausragenden Funktionen des Tools sind:
- Ausschlusslisten für VMs und Nodes: Bestimmte VMs oder Nodes können von der Lastverteilung ausgenommen werden.
- Konfigurierbare Spanne für die Lastverteilung: Du kannst festlegen, wie viel Unterschied in der RAM-Auslastung zwischen den Nodes akzeptabel ist, bevor eine Migration eingeleitet wird.
- Optimierter Algorithmus für die VM-Auswahl: Das Skript priorisiert gezielt, welche VMs am besten migriert werden sollten.
- Periodische Ausführung: Der Load Balancer läuft kontinuierlich und schläft in konfigurierbaren Intervallen.
Ein wichtiger Hinweis: Um die automatische Migration zu ermöglichen, ist geteilte Speicher-Infrastruktur erforderlich (z.B. CEPH oder eine ähnliche Lösung).
Der Proxmox Load Balancer als Docker-Container
Um den Proxmox Load Balancer einfach zu verwalten und zu skalieren, habe ich das Skript in einen Docker-Container verpackt. Das bietet einige Vorteile:
- Einfacher Start und Stopp des Load Balancers.
- Automatische Wiederherstellung im Fehlerfall durch Docker’s Restart-Mechanismus.
- Konfigurationsdaten können extern gespeichert und versioniert werden.
Setup in Docker
Die Bereitstellung ist einfach und erfordert nur wenige Schritte. Hier ist das Docker Compose-Setup:
---
services:
proxmox-load-balancer:
image: thealhu/proxmox-load-balancer:latest
container_name: proxmox-load-balancer
restart: always
volumes:
- ./config:/config
Alternativ kann der Container auch direkt mit dem Docker CLI gestartet werden:
docker run -d --restart always --name proxmox-load-balancer -v "$(pwd)/config:/config" thealhu/proxmox-load-balancer:latest
Anpassungen und Empfehlungen
- Ausschluss von VMs und Nodes: Das Skript erlaubt das Ausschließen bestimmter Nodes oder VMs, die nicht migriert werden sollen. Dies kann in der Konfigurationsdatei hinterlegt werden.
- Deviation-Wert: Eine Abweichung von etwa 3-5 % eignet sich für mittelgroße Cluster. Kleinere Werte führen zu häufigeren Migrationen.
- Erforderliche Berechtigungen: Es ist wahrscheinlich nicht nötig, dem Skript Root-Zugriff zu geben. Stattdessen könnte ein dediziertes Proxmox-Benutzerkonto mit eingeschränkten Rechten ausreichen (dies ist jedoch noch ungetestet).
Fazit
Der Proxmox Load Balancer stellt eine nützliche Lösung dar, um die RAM-Auslastung in einem Proxmox-Cluster automatisch zu optimieren. Die Bereitstellung als Docker-Container vereinfacht die Handhabung erheblich und macht die Lösung leicht skalierbar und wartbar.
Wenn ihr Verbesserungsvorschläge oder Anfragen für neue Features habt, hinterlasst gerne ein Feedback auf der GitHub-Seite des Projekts.