2016-09-26 10 views
1

Я установил мезо и марафон в своей локальной системе. Кроме того, у меня есть Docker двигатель работает на моей системе, и когда я делаю, sudo docker images, я получаю следующее,Запуск контейнера-докера в качестве задачи в марафоне

REPOSITORY             TAG     IMAGE ID   CREATED    SIZE 
myrepo/hello            latest    b7ce0084dbaf  4 weeks ago   330.3 MB 
fluent/new             latest    adc4b7b4b0eb  4 weeks ago   1.589 GB 
<none>              <none>    3a87799875ed  4 weeks ago   1.589 GB 
<none>              <none>    16a573cd3b85  4 weeks ago   330.3 MB 
769348183957.dkr.ecr.us-east-1.amazonaws.com/ruby   2.1.10    77bf121d484e  8 weeks ago   1.535 GB 
769348183957.dkr.ecr.us-east-1.amazonaws.com/centos-base 7     9ab68a0dd16a  10 weeks ago  330.3 MB 
hello-world            latest    c54a2cc56cbb  12 weeks ago  1.848 kB 
docker/whalesay           latest    6b362a9f73eb  16 months ago  247 MB 

Теперь, через Marathon UI, я пытаюсь сделать заявку, и после того, как собирается делать все шаги в документации по адресу https://mesosphere.github.io/marathon/docs/native-docker-private-registry.html, когда я, наконец, создаю приложение, это состояние меняется между развёртыванием и ожиданием с перерывами и, наконец, показывает задержку. Я никогда не получаю его на сцене. Я пытаюсь выяснить журналы на моей машине, но я не могу понять, как они видят их объем.

Мой JSON конфигурации для приложения следующим образом:

{ 
    "id": "/123", 
    "cmd": "sudo docker run -itd 9ab68a0dd16a /bin/bash", 
    "cpus": 1, 
    "mem": 128, 
    "disk": 200, 
    "instances": 1, 
    "container": { 
    "docker": { 
     "image": "769348183957.dkr.ecr.us-east-1.amazonaws.com/centos-base", 
     "network": "HOST", 
     "forcePullImage": true 
    }, 
    "type": "DOCKER" 
    } 
} 

Я пропускаю что-нибудь? AFAIK, что должно произойти, приложение должно автоматически вытащить это изображение из моего локального репо и, наконец, развернуться на машине. Должен ли я также создать задачу для моего приложения, потому что я не сделал никакой конкретной задачи? Если да, мне не нужно сначала создавать приложение, а затем добавлять к нему задачи?

Кроме того, я перезапущен в Mesos подчиненному, как это: sudo ./bin/mesos-slave.sh --master=127.0.0.1:5050 --work_dir=/var/lib/mesos --containerizers=docker,mesos --executor_registration_timeout=5mins

Кроме того, я попытался сделать tar.gz файл докер репо на моем локальном хосте и скопировать его в/и т.д., и передал URI: file///etc/docker.repo.tar.gz

Где я иду не так? В марафонских журналах я вижу это None of the enabled containerizers (mesos) could create a container for the provided TaskInfo/ExecutorInfo message. Следовательно, я думаю, что именно здесь я ошибаюсь.

Edit: Marathon журналы для применения предложил:

[2016-09-26 12:29:30,418] INFO Task launch for 'task [nginx.c59c7403-83b6-11e6-a834-0a0027000000]' was accepted. 0 tasksToLaunch, 0 in flight, 1 confirmed. not backing off (mesosphere.marathon.core.launchqueue.impl.AppTaskLauncherActor:marathon-akka.actor.default-dispatcher-8) 
I0926 12:29:30.418325 90841088 master.cpp:3104] Processing ACCEPT call for offers: [ d165ac5e-93dc-4b7b-bf36-071ce75aa44d-O17 ] on slave d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0 at slave(1)@172.26.35.124:63837 (172.26.35.124) for framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 (marathon) at [email protected]:63837 
I0926 12:29:30.419334 90841088 master.hpp:177] Adding task nginx.c59c7403-83b6-11e6-a834-0a0027000000 with resources cpus(*):0.1; mem(*):256; ports(*):[31835-31835] on slave d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0 (172.26.35.124) 
I0926 12:29:30.419400 90841088 master.cpp:3589] Launching task nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 (marathon) at [email protected]:63837 with resources cpus(*):0.1; mem(*):256; ports(*):[31835-31835] on slave d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0 at slave(1)@172.26.35.124:63837 (172.26.35.124) 
I0926 12:29:30.419661 89767936 slave.cpp:1361] Got assigned task nginx.c59c7403-83b6-11e6-a834-0a0027000000 for framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 
I0926 12:29:30.421689 90304512 gc.cpp:83] Unscheduling '/tmp/mesos/0/slaves/d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0/frameworks/fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000' from gc 
I0926 12:29:30.422006 89767936 gc.cpp:83] Unscheduling '/tmp/mesos/0/meta/slaves/d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0/frameworks/fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000' from gc 
I0926 12:29:30.422173 88158208 slave.cpp:1480] Launching task nginx.c59c7403-83b6-11e6-a834-0a0027000000 for framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 
I0926 12:29:30.422904 88158208 paths.cpp:528] Trying to chown '/tmp/mesos/0/slaves/d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0/frameworks/fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000/executors/nginx.c59c7403-83b6-11e6-a834-0a0027000000/runs/0548c84c-40ad-40cd-bbd8-b1330e66f348' to user 'bhjain' 
I0926 12:29:30.445124 88158208 slave.cpp:5352] Launching executor nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 with resources cpus(*):0.1; mem(*):32 in work directory '/tmp/mesos/0/slaves/d165ac5e-93dc-4b7b-bf36-071ce75aa44d-S0/frameworks/fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000/executors/nginx.c59c7403-83b6-11e6-a834-0a0027000000/runs/0548c84c-40ad-40cd-bbd8-b1330e66f348' 
I0926 12:29:30.446513 88158208 slave.cpp:1698] Queuing task 'nginx.c59c7403-83b6-11e6-a834-0a0027000000' for executor 'nginx.c59c7403-83b6-11e6-a834-0a0027000000' of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 
E0926 12:29:30.446702 88158208 slave.cpp:3784] Container '0548c84c-40ad-40cd-bbd8-b1330e66f348' for executor 'nginx.c59c7403-83b6-11e6-a834-0a0027000000' of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 failed to start: **None of the enabled containerizers (mesos) could create a container for the provided TaskInfo/ExecutorInfo message** 
E0926 12:29:30.446846 90841088 slave.cpp:3855] Termination of executor 'nginx.c59c7403-83b6-11e6-a834-0a0027000000' of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 failed: Unknown container: 0548c84c-40ad-40cd-bbd8-b1330e66f348 
I0926 12:29:30.453965 90841088 slave.cpp:3012] Handling status update TASK_FAILED (UUID: 90717092-98c0-4eab-9967-f43e005159b5) for task nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 from @0.0.0.0:0 
W0926 12:29:30.454391 91914240 containerizer.cpp:1295] Ignoring update for unknown container: 0548c84c-40ad-40cd-bbd8-b1330e66f348 
I0926 12:29:30.454927 91377664 status_update_manager.cpp:320] Received status update TASK_FAILED (UUID: 90717092-98c0-4eab-9967-f43e005159b5) for task nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 
I0926 12:29:30.455751 91377664 status_update_manager.cpp:824] Checkpointing UPDATE for status update TASK_FAILED (UUID: 90717092-98c0-4eab-9967-f43e005159b5) for task nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 
I0926 12:29:30.456254 90304512 slave.cpp:3410] Forwarding the update TASK_FAILED (UUID: 90717092-98c0-4eab-9967-f43e005159b5) for task nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2-8f1c-c24057bcfb58-0000 to [email protected]:63837 
I0926 12:29:30.456456 91377664 master.cpp:4763] Status update TASK_FAILED (UUID: 90717092-98c0-4eab-9967-f43e005159b5) for task nginx.c59c7403-83b6-11e6-a834-0a0027000000 of framework fa8c0ef7-651b-41c2 
+1

Можете ли вы исправить определение приложения JSON в этом вопросе? Кроме того, вы используете базовое изображение Docker? Вам нужно приложение, которое работает на переднем плане. Что произойдет, если вы запустите стандартное изображение nginx (из Docker Hub)? – Tobi

+0

@Tobi, о, мой плохой, я сделаю это. –

+0

Я имел в виду вставку «настоящего» JSON ... – Tobi

ответ

0

JSON кажется прекрасным с точки зрения JSON схемы. TBH, содержимое содержимого cmd на самом деле не имеет смысла, если вы хотите протестировать запущенные контейнеры на Mesos.

Я даже думаю, что команда, которую вы используете, не будет в состоянии работать, выполняя Docker в контексте приложения ...

Пожалуйста, используйте стандартный образ как nginx, как это:

{ 
    "id": "nginx", 
    "container": { 
    "type": "DOCKER", 
    "docker": { 
     "image": "nginx", 
     "network": "BRIDGE", 
     "portMappings": [ 
     { "hostPort": 0, "containerPort": 80 } 
     ], 
     "forcePullImage":true 
    } 
    }, 
    "instances": 1, 
    "cpus": 0.1, 
    "mem": 256, 
    "healthChecks": [{ 
     "protocol": "HTTP", 
     "path": "/", 
     "portIndex": 0, 
     "timeoutSeconds": 10, 
     "gracePeriodSeconds": 10, 
     "intervalSeconds": 2, 
     "maxConsecutiveFailures": 10 
    }] 
} 

для проверки общей функциональности. Если это работает, отметьте и нажмите на изображение nginx в свой локальный реестр и попробуйте использовать его через метод передачи учетных данных uris и имя локального изображения.

+0

Я все еще сталкиваюсь с той же проблемой, когда использую этот JSON. Проверьте мое редактирование в исходном сообщении. Считаете ли вы, что это может быть проблема с конфигурацией? –

+0

Можете ли вы вручную запустить контейнер Docker на подчиненном устройстве?'** Ни один из разрешенных контейнеров (мезо) не может создать контейнер для предоставленного сообщения TaskInfo/ExecutorInfo **« подсказки ошибок для проблем с запуском контейнеров через Docker – Tobi

+0

, поскольку ведомое устройство работает на моем локальном сервере, да, когда я запускаю изображение, я могу запустить контейнер на машине, на которой запущен ведомый mesos. –