Hallo zusammen,
ich habe schon länger das Phänomen, dass Verbindungen zu als Docker-Container laufenden Anwendungen kurzzeitig nicht funktionieren bzw. Packet-Loss haben.
Das Problem äußert sich dann unter anderem in fehlschlagenden Healthchecks.
Die Eckdaten des NAS sind:
- DXP4800Plus
- System Version: 1.16.0.0089
- Docker App-Version: 1.16.0.0022
Mein Setup sieht so aus:
- ich nutze eine virtuelle Bridge auf UGOS-Seite (IP: 192.168.0.5)
- es gibt eine Traefik-Instanz als Container, die auf Port 80 und 443 lauscht. Der Compose-Service hängt im "proxy" Docker-Network (172.18.0.0/24)
- alle anderen Anwendungen laufen als separate Compose-Stacks und nutzen das gleiche "proxy" Docker-Network
- der DNS-Eintrag im lokalen Netz zeigt jeweils immer auf die NAS-IP (192.168.0.5)
Der Netzwerkverkehr von einem anderen Gerät im LAN sieht also so aus:
Client-PC -> NAS-IP (192.168.0.5) -> "docker-proxy" Prozess (Listen auf 80/443) -> Traefik-Instanz (172.18.0.1) -> Ziel-Anwendung (172.18.0.2)
Wenn ich nun in einer Schleife auf die Anwendung zugreife, sehe ich die Probleme nur dann, wenn die NAS-IP im Spiel ist:
- von einem Drittgerät (curl -sf --connect-timeout 1 https://app.local): Fehler (request geht gegen 192.168.0.5)
- vom NAS selbst (curl -sf --connect-timeout 1 https://app.local): Fehler (request geht gegen 192.168.0.5)
- vom Traefik-Container (curl -sf --connect-timeout 1 https://app.local): Fehler (request geht gegen 192.168.0.5)
- vom Traefik-Container via SNI-Overwrite (curl -sf --connect-timeout 1 --resolve app.local:443:127.0.0.1 https://app.local): kein Fehler
- von einem beliebigen Container im "proxy" Network auf den docker-internen Service und Port: (curl -sf --connect-timeout 1 https://app:9090): kein Fehler
- vom Anwendungscontainer auf sich selbst: (curl -sf --connect-timeout 1 https://localhost:9090): kein Fehler
Lasse ich die fehlschlagenden Tests laufen, sehe ich etwa 10% davon scheitern; die anderen 90% sind erfolgreich.
Habt ihr ähnliche Erfahrungen und habt eine Idee, woran das liegen kann?
Viele Grüße!