Как использовать докер в распределенных системах - PullRequest
0 голосов
/ 04 декабря 2018

Здравствуйте, у меня есть следующая проблема:

У меня есть .NET Core WebApi и Distributed Database ( RethinkDB ), которые я хочу масштабировать, используя Docker контейнеры.База данных может быть как защищенной, так и реплицируемой (хотя я не заинтересован в репликации).Моя проблема заключается в дизайне:

Используя докер, я уже создал
1. Dockerfile для базы данных
2. Dockerfile для webapi
3. Dockercompose для пары.

Мой вопрос: как вы интегрируете Docker-swarm или Kubernetes для масштабирования в этой ситуации?Я не очень знаком, но web-api зависит от базы данных для работы. Мне нужно, чтобы docker compose в этой ситуации?Или как они все сочетаются друг с другом?(Докеризация зависимых компонентов + масштабирование).

Делаете ли вы все компоненты в одном, а затем масштабируете или разделяете их и масштабируете каждый по отдельности?

1 Ответ

0 голосов
/ 04 декабря 2018

docker-compose - это инструмент для запуска многоконтейнерных докеров, но он имеет ограниченное применение.Как говорится в документации, он обычно используется в средах разработки, автоматизированных средах тестирования и развертываниях на одном хосте.(См .: https://docs.docker.com/compose/overview/#common-use-cases)

Если вы хотите развернуть такое приложение на нескольких хостах, вам понадобится система оркестровки. Docker-swarm или kubernetes очень хорошо подходят. Обе системы нуждаются в реестре докеров, где вываши собственные, настраиваемые образы докеров. Эти образы могут быть созданы из ваших уже существующих файлов Docker. Ваш файл docker-compose.yaml не используется в этих системах, но вы все равно можете использовать его идеально для разработки.

ОбаРешения могут масштабировать каждый компонент отдельно. Какой из них на самом деле лучше, является спорным и, вероятно, зависит от вашей архитектуры.

...