2017-09-04 2 views
0

Ich habe eine 3-Knoten-Setup läuft Marathon, Mesos-Master, Mesos-Slave und Zookeeper mit HA-Konfiguration aktiviert, dann getestet eine Bereitstellung von einfachen Hallo App mit mesos-execute und es funktioniert als erwartet.Marathon Anwendung Deployment bleiben stecken auf Wartestatus

Jetzt sieht alles gut aus, also verbinde ich mich mit Marathon und stelle eine einfache App zum Testen des marathon bereit: (echo "hallo" >> /tmp/output.txt), aber die Anwendung wird in den "Warte" Status gesaugt.

Was könnte das Problem sein, das Marathon daran hindert, Mesos-Ressourcen für die Bereitstellung zu verwenden?

Logs von Mesos-master:

I0904 11:23:27.064332 19769 master.cpp:2813] Received SUBSCRIBE call for framework 'marathon' at scheduler-034[email protected]:36324 
I0904 11:23:27.064623 19769 master.cpp:2890] Subscribing framework marathon with checkpointing enabled and capabilities [ PARTITION_AWARE ] 
I0904 11:23:27.064669 19769 master.cpp:6272] Updating info for framework cb16118a-2257-4020-a907-63aa6294e11b-0000 
I0904 11:23:27.064697 19769 master.cpp:2994] Framework cb16118a-2257-4020-a907-63aa6294e11b-0000 (marathon) at [email protected]:36324 failed over 
I0904 11:23:27.065032 19770 hierarchical.cpp:342] Activated framework cb16118a-2257-4020-a907-63aa6294e11b-0000 
I0904 11:23:27.065465 19770 master.cpp:7305] Sending 3 offers to framework cb16118a-2257-4020-a907-63aa6294e11b-0000 (marathon) at [email protected]:36324 
I0904 11:23:27.907865 19769 http.cpp:1115] HTTP GET for /files/read?_=1504517007920&jsonp=jQuery17109098185077823333_1504516979864&length=50000&offset=352538&path=%2Fmaster%2Flog from 192.168.40.1:53525 with User-Agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36' 
I0904 11:23:28.916651 19768 http.cpp:1115] HTTP GET for /files/read?_=1504517008930&jsonp=jQuery17109098185077823333_1504516979865&length=50000&offset=353797&path=%2Fmaster%2Flog from 192.168.40.1:53525 with User-Agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36' 
E0904 11:23:30.071293 19775 process.cpp:2450] Failed to shutdown socket with fd 39, address 192.168.40.159:58072: Transport endpoint is not connected 
I0904 11:23:30.073277 19768 master.cpp:1430] Framework cb16118a-2257-4020-a907-63aa6294e11b-0000 (marathon) at [email protected]:36324 disconnected 
I0904 11:23:30.073307 19768 master.cpp:3160] Deactivating framework cb16118a-2257-4020-a907-63aa6294e11b-0000 (marathon) at [email protected]:36324 
I0904 11:23:30.073485 19768 master.cpp:3137] Disconnecting framework cb16118a-2257-4020-a907-63aa6294e11b-0000 (marathon) at [email protected]:36324 
I0904 11:23:30.073496 19768 master.cpp:1445] Giving framework cb16118a-2257-4020-a907-63aa6294e11b-0000 (marathon) at [email protected]:36324 1weeks to failover 
I0904 11:23:30.073519 19768 hierarchical.cpp:374] Deactivated framework cb16118a-2257-4020-a907-63aa6294e11b-0000 

curl -XGET 'http://mesosphere2:8098/v2/queue?pretty' | jq

{ 
    "queue": [ 
    { 
     "count": 1, 
     "delay": { 
     "timeLeftSeconds": 0, 
     "overdue": true 
     }, 
     "since": "2017-09-04T13:12:42.024Z", 
     "processedOffersSummary": { 
     "processedOffersCount": 12, 
     "unusedOffersCount": 12, 
     "lastUnusedOfferAt": "2017-09-04T13:14:52.554Z", 
     "rejectSummaryLastOffers": [ 
      { 
      "reason": "UnfulfilledRole", 
      "declined": 3, 
      "processed": 3 
      }, 
      { 
      "reason": "UnfulfilledConstraint", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "NoCorrespondingReservationFound", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientCpus", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientMemory", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientDisk", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientGpus", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientPorts", 
      "declined": 0, 
      "processed": 0 
      } 
     ], 
     "rejectSummaryLaunchAttempt": [ 
      { 
      "reason": "UnfulfilledRole", 
      "declined": 12, 
      "processed": 12 
      }, 
      { 
      "reason": "UnfulfilledConstraint", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "NoCorrespondingReservationFound", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientCpus", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientMemory", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientDisk", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientGpus", 
      "declined": 0, 
      "processed": 0 
      }, 
      { 
      "reason": "InsufficientPorts", 
      "declined": 0, 
      "processed": 0 
      } 
     ] 
     }, 
     "app": { 
     "id": "/test03", 
     "acceptedResourceRoles": [ 
      "slave_public" 
     ], 
     "backoffFactor": 1.15, 
     "backoffSeconds": 1, 
     "container": { 
      "type": "DOCKER", 
      "docker": { 
      "forcePullImage": false, 
      "image": "laghao/hello-marathon", 
      "network": "BRIDGE", 
      "parameters": [], 
      "portMappings": [ 
       { 
       "containerPort": 80, 
       "hostPort": 80, 
       "labels": {}, 
       "protocol": "tcp", 
       "servicePort": 10003 
       } 
      ], 
      "privileged": false 
      }, 
      "volumes": [] 
     }, 
     "cpus": 0.1, 
     "disk": 0, 
     "executor": "", 
     "instances": 1, 
     "labels": {}, 
     "maxLaunchDelaySeconds": 3600, 
     "mem": 64, 
     "gpus": 0, 
     "portDefinitions": [ 
      { 
      "port": 10003, 
      "name": "default", 
      "protocol": "tcp" 
      } 
     ], 
     "requirePorts": false, 
     "upgradeStrategy": { 
      "maximumOverCapacity": 1, 
      "minimumHealthCapacity": 1 
     }, 
     "version": "2017-09-04T13:12:41.993Z", 
     "versionInfo": { 
      "lastScalingAt": "2017-09-04T13:12:41.993Z", 
      "lastConfigChangeAt": "2017-09-04T13:12:41.993Z" 
     }, 
     "killSelection": "YOUNGEST_FIRST", 
     "unreachableStrategy": { 
      "inactiveAfterSeconds": 300, 
      "expungeAfterSeconds": 600 
     } 
     } 
    } 
    ] 
} 
+0

Können Sie Marathons-Protokolle anzeigen? _waiting_ bedeutet, dass keine Ressourcen verfügbar sind, um Anwendungsbeschränkungen zu erfüllen. Im letzten Marathon 1.4+ können Sie debuggen, welche Ressourcen für eine bestimmte Bereitstellung mit [/ v2/queue endpoint] fehlen (https://merclose.github.io/marathon/docs/generated/api.html#v2_queue_get). – janisz

Antwort

0

Von documentation

Eine App bleibt in „Waiting“ für immer Das bedeutet, dass Marathon nicht erhalten „Ressourcen Angebote“ von Mesos, die es ermöglichen, Aufgaben dieser Anwendung zu starten. Der einfachste Fehler besteht darin, dass nicht genügend Ressourcen im Cluster verfügbar sind oder ein anderes Framework alle diese Ressourcen bereitstellt. Sie können die Mesos-Benutzeroberfläche nach verfügbaren Ressourcen durchsuchen. Beachten Sie, dass die erforderlichen Ressourcen (z. B. CPU, Mem, Disk) alle auf einem einzelnen Host verfügbar sein müssen.

Wenn Sie die Lösung nicht selbst finden und ein GitHub-Problem erstellen, hängen Sie bitte die Ausgabe des Mesos/Statusendpunkts an den Fehlerbericht an, damit wir verfügbare Clusterressourcen prüfen können.

In Ihrem Fall besteht ein Problem mit der Anwendungsrollenanforderung und der Agentenrolle. Sie können es von UnfulfilledRole ableiten.

Marathon 1.4 führte Informationen über festgefahrene Bereitstellungen ein. Sie können /v2/queue abfragen und erhalten Statistiken, warum Angebote abgelehnt wurden.

+0

Nun, ich lese diesen Thread über "Warte" Status, aber Ressourcen sind verfügbar, wie ich über Mesos direkt bereitstellen kann, so ist das Problem irgendwie zwischen Mesos-Marathon-Kommunikation, ein Thread ist auch in Marathon-Gruppe geöffnet: und die/v2/Warteschlange ist gepostet dort: https://groups.google.com/forum/#!topic/marathon-framework/r1aKkRXIXAE –

+0

Es sieht aus wie das Problem mit Rollen ist. Können Sie die Konfiguration der Anwendungs-JSON und -Agenten anzeigen? – janisz

+0

Sie haben Recht - ich habe die Bereitstellungsskripts erneut geändert und Sie können sie in der Gruppe überprüfen, können Sie sie bereitstellen und mir ein Feedback geben? –

Verwandte Themen