2016-10-31 2 views
3

У меня есть установка Marathon и Mesos на двух моих машинах. Я могу успешно планировать команды с веб-консоли марафона, но когда я пытаюсь запланировать работу с изображениями докеров, я сразу же получаю работу. Плюс я не получаю файлы stderr или stdout.Задания марафона Docker Failed

Пример Выполнение команды нормального:

Marathon job conf: 
    { 
     "id": "testecho", 
     "cmd": "echo hello; sleep 10", 
     "cpus": 1, 
     "mem": 128, 
     "disk": 0, 
     "instances": 1 
    } 

На Mesos я вижу, что задачи удалось. У меня есть файлы stderr и stdout, как обычно.

mesos: simple command job success

Но теперь, если я бегу простая задача докер изображения:

Marathon job conf: 

     { 
     "id": "/ubuntu", 
     "cmd": "date -u +%T", 
     "cpus": 0.5, 
     "mem": 512, 
     "disk": 0, 
     "instances": 1, 
     "container": { 
     "type": "DOCKER", 
     "volumes": [], 
     "docker": { 
      "image": "libmesos/ubuntu", 
      "network": null, 
      "portMappings": null, 
      "privileged": false, 
      "parameters": [], 
      "forcePullImage": false 
     } 
     }, 
     "portDefinitions": [ 
     { 
      "port": 10001, 
      "protocol": "tcp", 
      "labels": {} 
     } 
     ] 
    } 

На Mesos, я вижу, что он сразу же не удалось:

mesos: docker job failed

И у меня есть нет файлов stderr или stdout:

No stderr or stdout files

Я также заметил, что на обоих моих машинах, когда я бегу:

docker ps -a 

Я не вижу ничего на обеих машинах. Таким образом, это означало бы, что рабочие места докеров даже не запущены.

Что может повлиять на развертывание докеров?

Единственная причина, по которой я могу думать, заключается в том, что пользователь, который использует марафон для запуска задач, не имеет доступа к докере? Как проверить это?

Я заметил, что когда я запускаю команду:

sudo cat /etc/passwd 

Я вижу пользователя зоопарка. Может быть, это пользователь, который не имеет доступа к докере?

Но когда я делаю:

su zookeeper 

Я не изменить профили пользователей

ответ

3

После прохождения нескольких учебников я нашел ответ из следующего урока: http://frankhinek.com/deploy-docker-containers-on-mesos-0-20/

я должен был разрешено Контейнер для докеров на моих мезо-рабах

  1. Установите --containerizers = DOCKER, Mesos»параметр командной строки:

    echo "docker,mesos" | sudo tee /etc/mesos-slave/containerizers 
    
  2. увеличить время ожидания исполнителя до 5 минут1: (я предполагаю, что это не является обязательным)

    echo "5mins" | sudo tee /etc/mesos-slave/executor_registration_timeout 
    
  3. Перезагрузит Мезос Ведомый:

Смежные вопросы