Я хочу настроить/подключить marathon-lp с простой веб-страницей, работающей на mesos/maraton.
Конечным результатом, который я хочу получить, является веб-страница, работающая на одном IP-адресе, и другой вопрос пользователя должен быть распространен на следующий экземпляр приложения.
О моей инфраструктуре
- трехузловой мезос-мастер и три мезос-ведомый,
- в моей инфраструктуре локальной сети у меня есть домен DNS ActiveDirectory
Теперь я запускаю пример приложения www в mesos/marathon:
{
"id": "/example-www/hello-world",
"cmd": null,
"cpus": 0.5,
"mem": 64,
"disk": 0,
"instances": 4,
"container": {
"type": "DOCKER",
"volumes": [],
"docker": {
"image": "tutum/hello-world",
"network": "BRIDGE",
"portMappings": [
{
"containerPort": 80,
"hostPort": 0,
"servicePort": 10010,
"protocol": "tcp",
"labels": {}
}
],
"privileged": false,
"parameters": [],
"forcePullImage": true
}
},
"healthChecks": [
{
"path": "/",
"protocol": "HTTP",
"portIndex": 0,
"gracePeriodSeconds": 10,
"intervalSeconds": 2,
"timeoutSeconds": 10,
"maxConsecutiveFailures": 10,
"ignoreHttp1xx": false
}
],
"labels": {
"HAPROXY_GROUP": "external",
"HAPROXY_0_VHOST": "service.mesosphere.com",
"HAPROXY_0_BIND_ADDR": "192.168.18.9",
"HAPROXY_0_PORT": "80"
},
"portDefinitions": [
{
"port": 10010,
"protocol": "tcp",
"labels": {}
}
]
}
Это веб-приложение работает правильно - http://oi66.tinypic.com/27y8qco.jpg
Теперь я хочу назначить этому веб-приложению IP-адрес, например, 192.168.18.9. Приложение должно быть доступно по этому адресу IP. Но когда я помещаю этот адрес в веб-браузер и обновляю страницу, я должен быть распределен для всех экземпляров приложения (четыре экземпляра веб-приложения).
Я пытаюсь настроить marathon-lp, но не знаю, что я делаю не так. На одном из главных узлов (192.168.18.10) я устанавливаю dcos и marathon-lb.
Мои шаги:
запуск веб-приложения в mesos/marathon
в одном из узлов mesos-master (192.168.18.10), где установлены dcos и marathon-lb, я создаю файл options.json с содержимым
{ "marathon-lb":{ "name":"example-www/lb", "haproxy-group":"example-www", "bind-http-https":false, "role":"" } }
Теперь, когда я тренируюсь в консоли ssh
dcos package install --options=options.json marathon-lb
Статус приложения marathon-lp все еще ожидает — экран
Я читал документацию marathon-lp, пытался исправить ее разными способами, но каждый раз приложение marathon-lp находится в состоянии ожидания.
Что я делаю неправильно? Может быть, я не пишу требуемую переменную при создании файла option.json? А может этот файл не нужен?
Я буду очень благодарен за вашу помощь.