оставьте Docker Swarm, но оставьте службы запущенными - PullRequest
0 голосов
/ 27 апреля 2018

Возможно ли, чтобы узел роя Docker покинул рой, но продолжал запускать службы, будучи членом роя?

1 Ответ

0 голосов
/ 27 апреля 2018

Краткий ответ: не пытайтесь сделать это.

Это было бы против дизайна режима роя. По той же причине, по которой докер отключает функцию live-restore, когда у вас есть режим роя, вы не сможете поддерживать работу служб, когда узел покидает роя кластер. Логика обоих решений заключается в том, что, когда режим роя обнаруживает, что целевое состояние службы не соответствует текущему состоянию, он будет делать все возможное для достижения этого целевого состояния.

При live-restore Docker обычно оставлял контейнеры работающими при остановке демона и восстанавливал эти контейнеры в демоне Docker после перезапуска демона. И точно так же, если контейнеры продолжали работать, когда узел покидает рой, с точки зрения менеджера роя, результат будет таким же: контейнеры работают, и менеджер не может отслеживать текущее состояние.

Так как текущее состояние не может отслеживаться в этих сценариях, ошибки докера на стороне остановки контейнера, когда он грациозно останавливается или покидает рой. Сценарий, в котором контейнеры будут продолжать работать, происходит во время неуместного отключения от менеджера (ов) роя. В этом сценарии работник не знает, отключен ли он, а рабочая нагрузка была перенесена в другое место, или не работает только диспетчер, и остановка контейнеров превратила бы небольшое отключение в большое, поэтому ошибки докера на сторона, в которой контейнеры работают, когда разъединение не контролируется.

...