2014-02-11 5 views
2

Я пытаюсь настроить Chronos на использование пользовательского исполнителя мезо-докеров, присутствующего на https://github.com/mesosphere/mesos-docker/. Каждый раз, когда я пытаюсь запустить команду, она терпит неудачу.Пользовательский исполнитель mesos для докеров в chronos

Я создал задачу там, используя ниже команд

echo '{"schedule":"R/2014-02-14T00:52:00Z/PT90M", "name":"testing_docker_executor", "command":"docker_ubuntu_test /root/docker_test.sh", "epsilon":"PT15M", "executor":"/var/lib/mesos/executors/docker" }' | http POST localhost:8080/scheduler/iso8601 

Я также сконфигурирован протоколирование в исполнителе и ниже журналы, которые я получаю, когда он не

Feb 11 13:51:36 ip6-localhost docker[13895]: Ready to serve! 
Feb 11 13:51:36 ip6-localhost docker[13895]: Registered with Mesos slave 
Feb 11 13:51:36 ip6-localhost docker[13895]: Task is: ct:1392126755612:2:testing_docker_executor 
Feb 11 13:51:36 ip6-localhost docker[13895]: JSON from framework is rubbish 
Feb 11 13:51:36 ip6-localhost docker[13895]: No JSON object could be decoded 
Feb 11 13:51:36 ip6-localhost docker[13895]: Traceback (most recent call last): 
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/var/lib/mesos/executors/docker", line 120, in launchTask 
Feb 11 13:51:36 ip6-localhost docker[13895]:  self.data = json.loads(task.data) if task.data else {} 
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/usr/lib/python2.7/json/__init__.py", line 338, in loads 
Feb 11 13:51:36 ip6-localhost docker[13895]:  return _default_decoder.decode(s) 
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/usr/lib/python2.7/json/decoder.py", line 365, in decode 
Feb 11 13:51:36 ip6-localhost docker[13895]:  obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/usr/lib/python2.7/json/decoder.py", line 383, in raw_decode 
Feb 11 13:51:36 ip6-localhost docker[13895]:  raise ValueError("No JSON object could be decoded") 
Feb 11 13:51:36 ip6-localhost docker[13895]: ValueError: No JSON object could be decoded 
Feb 11 13:51:36 ip6-localhost docker[13895]: [] 
Feb 11 13:51:36 ip6-localhost docker[13895]: Traceback (most recent call last): 
Feb 11 13:51:36 ip6-localhost docker[13895]: File "/var/lib/mesos/executors/docker", line 67, in run 
Feb 11 13:51:36 ip6-localhost docker[13895]:  img = self.args[0] 
Feb 11 13:51:36 ip6-localhost docker[13895]: IndexError: list index out of range 

ли что-то я отсутствую. Мне нужно предоставить JSON в команде.

ответ

0

Я разработал и настроил скрипт mesos-docker на @solidsnack. Его можно найти по адресу https://github.com/mudasirmirza/chronos-docker

Этот скрипт прекрасно работает с Mesos и Chronos без марафона.

Использование и примеры приведены в readme.

0

Похоже, что данные представлены в TaskInfo, но я не уверен, откуда это происходит. Исполнитель Docker ожидает, что, если будут предоставлены данные, он был предоставлен марафоном и должен быть JSON. Очевидно, что-то еще там.

Что касается второй ошибки - list index out of range - это означает, что docker_ubuntu_test /root/docker_test.sh не передается исполнителю Docker. Что действительно странно.

+0

После добавления заявления войти функции обработчика для печати sys.argv, я вижу только, что исполнитель не передается и ничего другого. Однако в task.data все есть. Также, когда я прокомментировал большую часть части функции startTask и жестко закодированные переменные img и args, она работает. Посмотрите новые журналы после добавления журналов в обработчик и __init__ http://pastebin.com/bmFPb8pr –

0

Вам необходимо предоставить докер image для запуска mesos в вашем json. Это должно выглядеть больше.

{ 
    "schedule" : "R5/2014-11-12T05:31:00.000Z/PT10S", 
    "epsilon" : "PT10M", 
    "name" : "ECHO_DATE_DOCKER", 
    "container": { 
    "type": "DOCKER", 
    "image": "libmesos/ubuntu" 
    }, 
    "cpus": "0.5", 
    "mem": "256", 
    "command" : "date >> /tmp/ECHO_DATE_01", 
    "owner" : "[email protected]", 
    "async" : false 
} 

Есть еще примеры here

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

  • Нет связанных вопросов^_^