2015-04-09 2 views
1

У меня есть 3 главных узла мезо и 87 подчиненных узлов мезос. Все операционные системы узла - Ubuntu 14.04. На каждом подчиненном узле mesos я установил докер. У меня есть два разных сканера, каждый из которых встроен в контейнер докеров. Теперь я запускаю их через марафон.Как запустить несколько контейнеров докеров на одном подчиненном узле mesos?

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

Но я хочу, чтобы каждый узел одновременно запускал два контейнера-искателя. Как мне это сделать? (простите моего бедного английского грамматиста).

Следующий код - запуск марафона json.

{ 
    "container": { 
    "type": "DOCKER", 
    "docker": { 
     "image": "slyang/final_crawlerv19" 
    } 
    }, 
    "id": "crawler-part", 
    "instances": "30", 
    "cpus": "0.5", 
    "mem": "150", 
    "uris": [], 
    "constraints": [["hostname", "UNIQUE"]], 
    "cmd": "ip=`wget http://ip.lustfield.net/ -O - -q`;echo $ip; sleep 20; echo $ip > /app/hostip;python user_info_fetcher.py part" 
} 
+0

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

+0

@seanmcl Я новичок в марафоне. Я думаю ** поле ограничений ** вызвало проблему, но я не знаю, как ее установить. Другая конфигурация задания марафона одинакова, за исключением поля ** id ** и ** image **. –

+0

Ограничение hostname = UNIQUE будет указывать Marathon на запуск только одного экземпляра этого приложения для имени хоста. Предполагая, что у каждого ведомого есть другое имя хоста, и у вас есть два разных определения приложений Marathon, это ограничение не должно препятствовать размещению контейнера App1 с контейнером App2. – Adam

ответ

4

На данный момент вам необходимо упаковать два контейнера вместе в одно изображение, чтобы Marathon запускал их вместе на одном узле. В противном случае вы просите конструкцию Kubernetes типа «pod», которая еще не существует в марафоне. См. https://github.com/mesosphere/marathon/issues/894

Дополнительная сложность возникает, когда вы хотите делиться томами или другими ресурсами между контейнерами.

+1

Вы также можете запустить кубернеты (и, тем самым, Pods) на Mesos: https://github.com/mesosphere/kubernetes-mesos – js84

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