Статически настроить микросервис для работы на определенной машине

Я создал 4 микро-сервисов, используя инфраструктуру Moleculer с docker-compose, Как мне статически настроить каждый микросервис для работы на конкретной машине.

1 ответ

Решение

Вы можете использовать Docker Swarm, у которого есть функция, позволяющая вам развернуть контейнер на определенном узле, который называется Constraints

Узел: Докер узел относится к члену в кластере режима роя. Каждый узел роя должен быть док-хостом. Источник: В чем разница между хостом-докером и узлом?

Ограничения могут рассматриваться как теги узла. Они представляют собой пары ключ / значение, связанные с конкретным узлом.

Каждый узел по умолчанию имеет следующие ограничения:

  • node.id
  • node.hostname
  • node.role

Служба может быть развернута следующим образом:

docker service create --name backendapp --constraint 'node.hostname == web.example.com'

Обратите внимание, что вы можете развернуть к рою, используя docker-compose.yml:

Команда deploy поддерживает файл compose версии 3.0 и выше.

docker stack deploy --compose-file docker-compose.yml mystack

Также вы можете установить ограничения в docker-compose похож на следующий пример:

version: '3.3'
services:
  web:
    image: backendapp-image
    deploy:
      placement:
        constraints:
          - node.hostname == web.example.com

Вы можете начать с роя Docker через здесь

Другие вопросы по тегам