2016-05-31 17 views
2

Für einige Hintergrund auf meine Umgebung:Wie kann eine schnellere Umplanung von Containern mit Docker Swarm und Consul aktiviert werden?

Ich habe Docker Schwarm von 3 Ubuntu 14.04 vagrant Boxen läuft. Der Schwarmmeister läuft auf 1 Maschine (mit Konsul) und die anderen 2 Maschinen laufen mit Schwarmarbeitern, die mit dem Meister verbunden sind. Ich richte die Umgebung nach der Dokumentationsseite https://docs.docker.com/swarm/install-manual/ ein. Es funktioniert korrekt, so dass alle docker -H :4000 <some_docker_command> von meinem Master-Rechner funktioniert gut funktioniert. Die Service-Erkennung ist aktiv, da ich den Container gliderlabs/registrator auf meinen beiden Mitarbeitern verwende.

Die Frage:

Änderungen an meinem Cluster, wie beispielsweise einen Knoten oder Behälterversagen und dem Prozessbehälter aus Neuplanung durch Schwarm (die mit dem Tag -e "reschedule:on-node-failure" erstellt werden) etwa 30 treten innerhalb von - 45 Sekunden . Im Vergleich dazu, als ich Flotten und etcd auf CoreOS-Systemen laufen ließ, kam es innerhalb von etwa 5 Sekunden zu einer Container-Neuplanung und zur Benachrichtigung über Knotenausfälle. Gibt es irgendeine Möglichkeit, einige der Einstellungen im Konsul- und Docker-Schwarm zu ändern, um alles auf ein Niveau zu bringen, das dem entspricht, was ich mit der Flotte und etcd auf CoreOS erlebt habe? Wenn ja, was müsste ich tun?

TLDR: ich Schwarm leite mit Konsul, Container reschedualing und Änderungen an den Ausgang des docker -H :4000 ps nicht, bis auftreten etwa 30 - 45 Sekunden nach dem Ausfall eines Knotens. Wie kann ich diesen Zeitraum reduzieren?

Antwort

0

Sie könnten versuchen, TTL und retries auf niedrigere Werte zu setzen, damit der Schwarmmanager bei Fehlern schneller reagiert.

Zum Beispiel:

docker run swarm manage --engine-failure-retry=1 consul:x.y.z.a:8500 

Voll documentation