LINUX.ORG.RU
ФорумAdmin

Оркестратор для докера

 


2

3

Доброго времени!

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

Заранее благодарен

мы для этого haven делели (на лоре есть новость), но хз насколько он «прост»

Deleted
()

Может просто голый Fleet? Он встроен в CoreOS. Наверное в этом и заключается «простота», если CoreOS - самый простой хост, а в него встроен оркестратор Fleet. По сути это распределенный systemd. И жрет точно такие же юниты, только с дополнительными опциями

https://coreos.com/fleet/docs/latest/unit-files-and-scheduling.html

MachineID - Require the unit be scheduled to the machine identified by the given string.

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 2)
Ответ на: комментарий от nihirash

Есть траблы со Storage Driver.

https://docs.docker.com/engine/userguide/storagedriver/selectadriver/#docker-...

https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#...

Там описано подробно, но если в крации то RHEL не поддерживает нормальный overlay2 а только devicemapper. P.S. а по дефолту с Docker реп, ставится overlay =D и все очень печально работает 1) ты не сможешь удалить файл, если ты его создавал в предидущем слое. 2) производительность оставляет желать лучшего, особенно это заметно, когда пытаешься удалить старые img

ilovemoney
()
Ответ на: комментарий от ilovemoney

overlay2 требует довольно нового ядра, что написано в документации. Обычный overlay на centos 7 работает неплохо, но только поверх ext4. На xfs есть проблемы(

Кстати, опишите вкратце, что за «крации» у вас такие?

grossws
()
Ответ на: комментарий от ilovemoney

А как вы в ранчере указываете, что данные контейнер запустить строго на таком хосте? Представим есть некое окружение в ранчере. В нем создаем стек. В нем композ. В композе указание на старт контейнеру. Это мы юзаем. Как мне распределить контейнеры композа по хостам? Строго по одному. Т.е. мы указываем, что должно стартовать 10 копий. И после этого они начинают кучковаться как им там ранчер указал - иногда по нескольку на хосте. Все хосты железные, их никто менять не будет. Все на центоси 6.9. Докер там 1.7.1 (по-моему). Тут наверно проще эти контейнеры поднять на хостах вручную и как-то включить их в оверлейную сеть.

alex-123
() автор топика
Ответ на: комментарий от Deleted

Да я читал и смотрел ваш хавен. Правде не ставил. Если вы немного раскроете как решить данный кейс именно хавеном буду признателен. Есть инетовские хосты на центосе 6.9. Ось менять не будут. Может разрешат кернел не штатный вкрутить по-свежее. Может (не смотрел пока)по этот центос есть где-то и более свежий докер (> 1.12). Но пока имеем что имеем. Между собой хосты связаны опенвпн. Но это не одна мета-сеть, сеть сделаенная звездой. За каждым хостом еще есть своя серая подсеть и эти подсети адресацией не пересекаются. С каждой подсети в каждую все смаршрутизировано. Это кем-то сделано и нормально работает. Нужно запустить N-копий контейнера строго по одному на каждом хосте так, чтобы они между собой могли общаться. Крнтейнер использует персистент на своем хосте (читает конфини и пишет логи).

alex-123
() автор топика
Ответ на: комментарий от alex-123

в rancher есть переменная label вы в нее помещаете значение хоста, а потом скармливаете что то типо этого

preprod1752hf02t4:
    image: registry.domain.local:5050/preprod1752hf02:4
    stdin_open: true
    volumes:
    - /opt/files/QA:/opt/files/birt

    dns:
    - 8.8.8.8
    tty: true
    ports:
    - 47122:22/tcp
    - 47100:7800/tcp
    - 47102:7802/tcp

    labels:
      io.rancher.scheduler.affinity:host_label: prod-1=true
      io.rancher.container.pull_image: always

ilovemoney
()
Ответ на: комментарий от ilovemoney

Ваш композ сможет предотвратить запуск 2-х контейнеров на хосте? Напр. изначально 20 хостов в них запустили по контейнеру. Потом один хост стал недоступен временно по какой-то причине. Что сделает ранчер в этом случае? Оставит все как есть или 20-ый контейнер попытается развернуть где-то еще?

alex-123
() автор топика
Ответ на: комментарий от alex-123

Если задан label, то будет пытатся запустить контейнер пока не запустит, и срать ошибками. Если label не задан, то не знаю, я так не делал

ilovemoney
()
7 сентября 2017 г.

при таком раскладе у тебя контейнер - это все равно что бинарник и любой стандартный ansible/salt/puppet подойдет

ansible конечно лучше потому как проще

запуск сервисов - юнитами в systemd

alpha ★★★★★
()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от alpha

А причем тут ансиблы и т.п.? какие еще сервисы? как вы юнитами сеть оверлейную будете поднимать? Наверно можно все - тока зачем?

alex-123
() автор топика
Ответ на: комментарий от alex-123

http://docs.ansible.com/ansible/latest/list_of_network_modules.html

Затем что простой оркестратор для решения задачи «запустить на хосте таком-то контейнер такой-то» - это ansible.

И сеть настраивается как и любая другая конфигурация.

Если тебе не нужно планировщика, автоматического масштабирования, healthcheck-ов, миграции между нодами и т.п., то полноценный менеджмент-сервис типа ранчера, с его многочисленными слоями абстракции, веб-интерфейсами, проблемами кворума, ha, поддержки и установки тебе даром не сдался.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Вы пост первый почитайте - там что нужно написано. Запустить контейнер это вообще не проблема. Я рад что вы открыли для себя ансибл, но это другая история.

alex-123
() автор топика
Ответ на: комментарий от alex-123

Выканье для ханжей.

Чем выпендриваться, реанимируя тред четырехмесячной давности, лучше бы отписался, что выбрал и почему. Было бы по делу.

alpha ★★★★★
()
Ответ на: комментарий от alpha

Ну так встань перед зеркалом и задай себе вопрос - а какого я влезла в тред через N месяцев после последнего ответа? Вот это было бы конструктивно.

alex-123
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.