2016-06-09 5 views
0

Ich bin Abhängigkeit Anwendung im Marathon läuft, ist einer Mongo DB und andere ist Karesti Abstimmung App. Ich habe diese Anwendungen in einem Docker Container im Marathon eingesetzt. Zuerst habe ich mongo db und später die Voting-App implementiert.Docker Container Lauf Fehler: Container beendet bei Fehler: beendet mit Status 1

mongo db docker Bild funktioniert gut im Marathon. das Problem ist mit Voting-App .... Voting-App wechselt ständig zwischen dem laufenden Modus und Suspend-Modus. Aus diesem Grund wird die Portnummer auch bei jeder Bereitstellung geändert und ein neuer Container erstellt das Andockfenster für dasselbe Image.

Hier habe ich mesos DNS für die Service-Erkennung.

Fehler von Marathon:

Docker container run error: Container exited on error: exited with status 1

Fehler Stimme App:

Received killTask for task cmvoting.dff585d5-2bc5-11e6-a4c0-0242efa3f3aa

Log message from mesos slave: 
I0607 07:24:04.297161 1957 slave.cpp:3243] Handling status update TASK_RUNNING (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 from executor(1)@127.0.0.1:50983 
I0607 07:24:04.299815 1957 status_update_manager.cpp:320] Received status update TASK_RUNNING (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:04.300282 1957 status_update_manager.cpp:824] Checkpointing UPDATE for status update TASK_RUNNING (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:04.391424 1957 slave.cpp:3641] Forwarding the update TASK_RUNNING (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 to [email protected]:5050 
I0607 07:24:04.391826 1957 slave.cpp:3551] Sending acknowledgement for status update TASK_RUNNING (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 to executor(1)@127.0.0.1:50983 
I0607 07:24:04.421507 1951 status_update_manager.cpp:392] Received status update acknowledgement (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:04.421766 1951 status_update_manager.cpp:824] Checkpointing ACK for status update TASK_RUNNING (UUID: ed039d5b-ef25-45e5-962f-367feaa33ae5) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 


I0607 07:24:18.299789 1956 slave.cpp:3243] Handling status update TASK_FAILED (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 from executor(1)@127.0.0.1:50983 
I0607 07:24:18.321115 1953 status_update_manager.cpp:320] Received status update TASK_FAILED (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:18.321229 1953 status_update_manager.cpp:824] Checkpointing UPDATE for status update TASK_FAILED (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:18.338953 1956 slave.cpp:3641] Forwarding the update TASK_FAILED (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 to [email protected]:5050 
I0607 07:24:18.339341 1956 slave.cpp:3551] Sending acknowledgement for status update TASK_FAILED (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 to executor(1)@127.0.0.1:50983 
I0607 07:24:18.350075 1954 status_update_manager.cpp:392] Received status update acknowledgement (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:18.350272 1954 status_update_manager.cpp:824] Checkpointing ACK for status update TASK_FAILED (UUID: e20d07aa-88e1-497b-9c51-79252c279f27) for task voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3 of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 
I0607 07:24:19.301136 1951 slave.cpp:3769] executor(1)@127.0.0.1:50983 exited 
I0607 07:24:19.327797 1953 docker.cpp:2011] Executor for container 'd4447d21-23da-45db-a9aa-f6b2d75e2db7' has exited 
I0607 07:24:19.327910 1953 docker.cpp:1731] Destroying container 'd4447d21-23da-45db-a9aa-f6b2d75e2db7' 
I0607 07:24:19.328034 1953 docker.cpp:1859] Running docker stop on container 'd4447d21-23da-45db-a9aa-f6b2d75e2db7' 
I0607 07:24:19.328732 1958 slave.cpp:4120] Executor 'voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3' of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 exited with status 0 
I0607 07:24:19.328843 1958 slave.cpp:4224] Cleaning up executor 'voting.cfc5c791-2c80-11e6-b454-0242f9dcd7c3' of framework 4925c40b-fb4b-4ec7-91fc-3ffc16e1bac8-0001 at executor(1)@127.0.0.1:50983 

Ich bin nicht in der Lage zu erkennen, wo das Problem ist, warum die Abstimmung App in Slave ausgefallen ist worden .

Wenn ich die Abstimmung von nackten ubuntu Maschine ausführen, kann ich auf die Anwendung zugreifen, die mit der Datenbank verknüpft ist und alles funktioniert gut. Was zeigt, dass kein Problem mit der App, kein Problem mit dem Docker-Bild.

Mein Verdacht ist, dass etwas in mesos Slave passiert, die nicht in der Lage ist zu handhaben oder möglicherweise nicht in der Lage sein, eine Verbindung zur Datenbank herzustellen.

mein Mongo Db hören Sie den Port 27017 und Voting-App hören Port 9000. Ich kann sehen, dass nur der Port 27017 verwendet wird, wenn ich die netstat -anp | grep 27017

Der Befehl, der Slave

sudo ./bin/mesos-slave.sh --master=zk://172.31.36.222:2181/home/ubuntu/mesos --executor_registration_timeout=5mins --containerizers="docker,mesos" 

Der Befehl, um den Marathon zu laufen verwendet laufen ist

./bin/start --master zk://172.31.36.222:2181/home/ubuntu/mesos --zk zk://172.31.36.222:2181/home/ubuntu/marathon-1.1.1 --task_launch_timeout 600000 

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen oder Klarheit über die Notwendigkeit Problem

Vielen Dank im Voraus für Ihre Hilfe ....

+0

bereitgestellt wird. Haben Sie die Docker-Deamon-Protokolle auf Ihrem Slave überprüft? 'sudo journalctl -ue docker ' –

+0

Zusätzlich können Sie die Protokolle der fehlerhaften Container überprüfen. Open Mesos UI z.B. 'https: //mesos.example.com: 5050 /'. Im Abschnitt "Erledigte Aufgaben" sollten Sie Ihre gescheiterten Executoren sehen. Klicke auf "Sandbox", wo du stderr und stdout findest. –

Antwort

1

O ne Teil des Problems könnte sein, dass Ihr Slave an die IP-Adresse 127.0.0.1 gebunden ist. Bitte versuchen, eine nicht-lokale Adresse auf Ihrem Slave wie folgt festgelegt:

echo 172.31.36.223 | sudo tee /etc/mesos-slave/ip 
sudo cp /etc/mesos-slave/ip /etc/mesos-slave/hostname 

ersetzen 172.31.36.223 mit der realen IP-Adresse des Slave.

Ein anderer Teil könnte wahrscheinlich sein, dass die Voting-App keine Verbindung zu MongoDB herstellen kann, da die Portnummer unterschiedlich ist. Sie sollten auch Ihre Marathon-App-Definitionen veröffentlichen, um dies überprüfen zu können.

Wenn Sie nur einen Slave haben, können Sie beide Apps im HOST-Netzwerkmodus ausführen, so dass Sie die Portnummern statisch definieren können. Wenn Sie den Bridge-Modus verwenden, müssen Sie einen Dienstentdeckungsmechanismus verwenden, damit die Voting-App den MongoDB-Server finden kann.

0

Ich danke für die Antwort, die ich erhalten habe ...

fand ich die Lösung für dieses Problem

Die DNS aus den Dateien für die richtige IP-Adresse sehen /etc/resolv.conf und/etc/hosts

Ich entfernte die Localhost-IP-Adresse aus der Datei/etc/hosts, wo DNS versuchte, von 127.0.0.1 aufzulösen, das der externen Welt unbekannt ist. Ich stelle meine private IP-Adresse der VM bereit, die in der DNS-Konfig-Datei

+1

Sie sollten die '127.0.0.1' nicht entfernen, da andere Dienste sich darauf verlassen können. Die bessere Lösung wäre, das 'IP HOSTNAME'-Mapping mit der externen IP-Adresse hinzuzufügen ... – Tobi

Verwandte Themen