Развертывание контейнеров Docker с сопоставлением портов на Mesos / Marathon

В настоящее время я работаю над командным проектом, использующим Docker с Apache Mesos / Marathon. Чтобы развернуть контейнеры докеров MySQL на Mesos / Marathon, нам нужно создать файл JSON с сопоставлением портов. Я искал повсюду в Интернете и просто не могу найти образец файла JSON для поиска сопоставления портов. Кто-нибудь делал это раньше?


person Hans    schedule 29.01.2015    source источник
comment
Какая из четырех упомянутых вами огромных систем будет читать JSON?   -  person Bryan    schedule 29.01.2015
comment
Какие четыре системы? Вы имеете в виду систему инициализации (Marathon), cron (Chronos), обнаружение служб (DNS), хранилище (HDFS)?   -  person Hans    schedule 30.01.2015
comment
Вы упомянули Docker, Mesos, Marathon и MySQL в своем вопросе. Все они могут выполнять сопоставление портов и, возможно, потребуется читать JSON. Пожалуйста, сузьте свой вопрос.   -  person Bryan    schedule 30.01.2015


Ответы (1)


Вот несколько примеров Marathon JSON для использования режима мостовой сети Docker:

{ "id": "bridged-webapp", "cmd": "python3 -m http.server 8080", "cpus": 0.5, "mem": 64.0, "instances": 2, "container": { "type": "DOCKER", "docker": { "image": "python:3", "network": "BRIDGE", "portMappings": [ { "containerPort": 8080, "hostPort": 0, "servicePort": 9000, "protocol": "tcp" }, { "containerPort": 161, "hostPort": 0, "protocol": "udp"} ] } } }

См. Раздел «Режим мостовой сети» в https://mesosphere.github.io/marathon/docs/native-docker.html для получения дополнительных сведений.

person Adam    schedule 01.02.2015
comment
{id: mysql1, cmd: / bin / bash /start.sh, cpus: 0.5, mem: 500, instance: 1, container: {type: DOCKER, docker: {image: centos6mysql, network: BRIDGE, portMappings: [{ containerPort: 3306, hostPort: 0, servicePort: 0, протокол: tcp}]}}} - person Hans; 02.02.2015
comment
Вот как я создаю файл JSON. Однако после запуска файла JSON он будет просто продолжать показывать задачу развертывания в моем пользовательском интерфейсе Marathon, и мои контейнеры будут продолжать не запускаться. - person Hans; 02.02.2015
comment
Это может помочь предварительно получить образы докеров на каждом ведомом устройстве, чтобы Mesos не терял время ожидания завершения docker pull. Вы также можете увеличить executor_registration_timeout, так как это включает ожидаемое время извлечения докера. Пример: echo "5mins" | sudo tee /etc/mesos-slave/executor_registration_timeout - person Adam; 03.02.2015
comment
Кроме того, я думаю, вы захотите установить не-0 servicePort, поскольку это порт всего кластера, на котором вы ожидаете найти свою службу, если вы используете haproxy или аналогичный для обнаружения службы. - person Adam; 03.02.2015