Я предполагаю, что вы хотите запускать эти службы 24x7, а не по требованию.С контейнерной оркестровкой это возможно.Один из способов сделать это с помощью Rancher:
Создайте 5 микроэкземпляров.4 для услуг и 1 для Rancher и положить все 5 в 1 VPC.Теперь установите Rancher в 5-м экземпляре и добавьте 4 других хоста в Rancher, чтобы все 4 хоста появились в инфраструктуре Rancher.
Теперь пометим все 4 хоста в Rancher уникально - например, «zuulserver», «database», «configserver», «eurekaserver»
Теперь отредактируйте ваш docker compose, чтобы добавить хост ранчераярлыки для каждой из ваших служб.
io.rancher.scheduler.affinity:host_label: key1=value1
wordpress:
labels:
# Make wordpress a global service
io.rancher.scheduler.global: 'true'
# Make wordpress only run containers on hosts with a key1=value1 label
io.rancher.scheduler.affinity:host_label: key1=value1
# Make wordpress only run on hosts that do not have a key2=value2 label
io.rancher.scheduler.affinity:host_label_ne: key2=value2
image: wordpress
links:
- db: mysql
stdin_open: true
В Rancher создайте стек с помощью docker compose и запустите стек.
Rancher развернет эти службык соответствующим хостам в соответствии с метками привязки хоста.
https://rancher.com/docs/rancher/v1.1/en/cattle/scheduling
https://rancher.com/docs/rancher/v1.2/en/hosts/