Docker Swarm Filters, ограничение и стратегия планирования - PullRequest
0 голосов
/ 23 марта 2019

Я использую Docker для Windows, а также Docker-CE в Ubuntu.

У меня включен режим роя Docker.

  • Я сталкивался со многими статьями, в которых указано, что у роя есть другая стратегия, например, binpacking, spread, и мы видим это в команде docker info, но я не могу ее увидеть.

    • Также некоторые статьи указывают на различные фильтры, такие как сходство, ресурс, порт и ограничение. Я могу видеть ограничение только в служебной команде docker, но не в других.

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

1 Ответ

0 голосов
/ 25 марта 2019

Несколько вещей, которые нужно прояснить:

  1. В Swarm Mode есть только одна стратегия размещения, спред.Возможно, вы читали старые статьи о «классическом рое» до того, как Docker выпустил встроенный Swarm Mode в середине 2016 года, который поддерживал binpacking.
  2. Существует множество способов управления размещением контейнеров в Swarm, которые яподробный охват swarmmastery.com (платный курс), который включает (как минимум) ограничения размещения, настройки размещения, глобальный режим и требования к ресурсам. См. Документацию по этим функциям здесь .
  3. Если вы хотите убедиться, что две службы находятся на одном узле, проще всего было бы разместить "метку узла" на этом узле, изатем создайте ограничение размещения для двух сервисов, чтобы соответствовать этой метке.Это может быть плохой идеей, если вы хотите, чтобы они оба переключались на другой узел вместе, если отказывает первый узел.У Swarm нет такой концепции «pod», как у Kubernetes, поэтому у него нет простого способа гарантировать, что два контейнера всегда находятся на узле вместе.Для меня, для таких вещей, как php-fpm + nginx или codefusion + nginx, я помещаю их в одно изображение и использую пример супервизора докера , чтобы сохранить их вместе.
...