Docker Swarm: Overlay und Ingress funktionieren nicht
Ich habe heute realisiert, dass ich erfolgreich über eine Woche meines Lebens damit in den Sand gesetzt habe, eine nicht funktionierende Kommunikation zwischen einem Docker Swarm Manager auf einem ESXi und einem Docker Swarm Worker auf einer Proxmox-Instanz zum laufen zu kriegen.
Die Fehler äußerten sich komplett wirr:
- der Worker verlor ständig die Verbindung
- Overlay-Netzwerke zwischen den Hosts funktionierten nicht
- Namensauflösung war nicht möglich
- Das Ingress Netzwerk hat nicht funktioniert
Um auf den Punkt zu kommen: der ESXi hat die Verbindung zur Manager-VM gedroppt, da diese auf dem Port 4789 läuft; und dieser von VMs nicht genutzt werden kann. Dies trifft auch zu, wenn die Hosts eine eigene IP über ein Bridge-Netzwerk haben.
Also muss der Swarm aufgetrennt werden, der Data-Port geändert werden, und der Swarm wieder errichtet werden.
Auf dem Worker:
docker swarm leave
Auf dem Manager:
docker swarm init --advertise-addr=YOURIP --listen-addr=0.0.0.0 --data-path-port=7779 --force-new-cluster=true
Code language: JavaScript (javascript)
Und auf dem Worker wieder dem Swarm über den Token beitreten.
Dies ist übrigens der StackOverflow-Kommentar, der die Lösung brachte.