Как масштабировать контейнеры Docker в производстве

поэтому я недавно обнаружил этот удивительный инструмент, и он говорит

Docker-это проект с открытым исходным кодом для легкого создания легкого, портативные, самодостаточные контейнеры от любого применения. Тот же контейнер, который разработчик создает и тестирует на ноутбуке, может работать в масштаб, в производстве, на ЗИС, голый металл, кластеры OpenStack, общественные облака и многое другое.

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

10 ответов


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

Я ожидал бы, что такая функция появится из следующих проектов, построенных поверх docker и предназначенных для поддержки приложений в производстве:

обновление 1

другой связанный проект I недавно обнаружил:

обновление 2

последняя версия Openstack содержит поддержку управления контейнерами Docker:

обновление 3

система управления экземплярами Docker

и a презентация о том, как использовать такие инструменты, как упаковщик, Docker и Серф для доставки неизменяемого шаблона инфраструктуры сервера

обновление 4

аккуратная статья о том, как соединить контейнеры docker с помощью серф:

обновление 5

запустить Docker на Мэсос С помощью марафон рамки

Мезосфера Docker Разработчик Учебник

обновление 6

запустить Docker на Тсуру как он поддерживает докер-кластерный и отдельный планировщик развернуть

обновление 7

оркестровка сред на основе Docker

маэстро-НГ

обновление 8

настил.io

обновление 9

Google kubernetes

обновление 10

Redhat переработали свои OpenShift PAAS для интеграции Docker

обновление 11

A Docker NodeJS lib обертывание командной строки Docker и управление ею из файла json.

обновление 12

новый Amazon контейнер позволяет масштабирование в кластере.

обновление 13

строго говоря Flocker не" масштабирует " приложения, но он предназначен для fufil связанной функции создания контейнеров с состоянием (запуск служб баз данных?) портативный через несколько хостов docker:

https://clusterhq.com/

обновление 14

проект для создания переносных шаблонов, описывающих Docker приложения:

http://panamax.io/

обновление 15

проект Docker теперь обращается к оркестровке изначально (см. объявление)

обновление 16

Spotify Helios

посмотреть также:

обновление 17

проект Openstack теперь имеет новый проект "контейнер как услуга" под названием Magnum:

показывает много обещаний, позволяет легко настроить рамки оркестровки докеров, такие как Kubernetes и Docker swarm.

обновление 18

Rancher-это проект, который быстро созревает

http://rancher.com/

хороший интерфейс и сильный акцент на hyrbrid Docker инфраструктуры

обновление 19

на проект решетки является ответвлением Cloud Foundry для управления кластерами контейнеров.

обновление 20

настройки недавно купил Тутум:

https://www.docker.com/tutum

обновление 21

диспетчер пакетов для приложений, развернутых на Kubernetes.

http://helm.sh/

обновление 22

Vamp-это платформа с открытым исходным кодом для управления (микро)сервис-ориентированными архитектурами, которые полагаются на контейнерные технологии.

http://vamp.io/

обновление 23

Распределенный, Высокодоступный, Datacenter-Aware Планировщик

от парней, которые дали нам бродягу и другие мощные инструменты.

обновление 24

решение для размещения контейнеров для AWS с открытым исходным кодом и на основе Kubernetes

https://supergiant.io/

обновление 25

контейнер на основе Apache Mesos размещен в Германии

https://sloppy.io/features/#features

И Docker Inc. также предоставляем услугу хостинга контейнеров под названием Docker cloud

https://cloud.docker.com/

обновление 26

Jelastic - это размещенная служба PAAS, которая автоматически масштабирует контейнеры.


Deis автоматизирует масштабирование контейнеров Docker (среди прочего).

Deis (произносится DAY-iss) - это PaaS с открытым исходным кодом, который упрощает развертывание и управление приложениями на собственных серверах. Деис строит на настройки и по CoreOS обеспечить облегченное PaaS с Heroku-воодушевлянным рабочим процессом.

вот рабочий процесс разработчика:

deis create myapp                      # create a new deis app called "myapp"
git push deis master                   # built with a buildpack or dockerfile
deis scale web=16 worker=4             # scale up docker containers

Deis автоматически развертывает контейнеры Docker через CoreOS кластеризует и настраивает маршрутизаторы Nginx для маршрутизации запросов к здоровым контейнерам Docker. Если узел умирает, контейнеры автоматически перезапускаются на другом узле в считанные секунды. Просто перейдите к URL-адресу прокси-сервера или используйте deis open чтобы поразить ваше приложение.

некоторые другие полезные команды:

deis config:set DATABASE_URL=          # attach to a database w/ an envvar
deis run make test                     # run ephemeral containers for one-off tasks
deis logs                              # get aggregated logs for troubleshooting
deis rollback v23                      # rollback to a prior release

чтобы увидеть это в действии, проверьте видео терминала вhttp://deis.io/overview/. Вы также можете узнайте о концепциях Deis или прыгать прямо в развертывание собственного личного PaaS.


взгляните на Rancher.com - он может управлять несколькими хостами Docker и многое другое.


вы можете попробовать Tsuru. Tsuru будет PaaS opensource воодушевленным в Heroku, и оно уже с некоторыми продуктами в продукции на Globo.com (интернет-подразделение крупнейшей телерадиокомпании Бразилии)

Он управляет всем потоком приложения, начиная с создания контейнера, развертывания, маршрутизации (с hipache) со многими приятными функциями, такими как кластер docker, масштабирование единиц, сегрегированное развертывание и т. д.

посмотреть в нашей документации реветь: http://docs.tsuru.io/

здесь наш пост, охватывающий нашу окружающую среду: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/


разумным подходом к масштабированию Docker может быть:

  1. каждая услуга будет настройки контейнер
  2. Intra container service discovery управляется через ссылки (новая функция от docker 0.6.5)
  3. контейнеры будут развернуты через Докку
  4. приложения будут управляться через завода который в свою очередь использует hipache

еще один проект docker с открытым исходным кодом от Яндекса:


ребята Openshift также создали проект. Вы можете найти более подробную информацию здесь попробуй тестовый контейнер и подробная информация здесь . Единственная проблема заключается в том, что решение Redhat ориентировано на сейчас:)


в то время как мы большие поклонники Deis (deis.io) и активно развертываются на нем, есть и другие решения для развертывания Heroku, такие как PaaS style, включая:

портовый грузчик из The Wayfinder folks:

https://github.com/longshoreman/longshoreman

Декер из CloudCredo folks, используя CloudFoundry:

http://www.cloudcredo.com/decker-docker-cloud-foundry/

Как по прямым согласование, проект opensource NewRelic Сотник кажется вполне перспективным:

https://github.com/newrelic/centurion


взгляните также на etcd и консул.


Panamax: управление Докером для людей. Панамакс.io

Fig: быстрые изолированные среды разработки с помощью Docker. fig.sh


одним из вариантов, не упомянутых в других сообщениях, является Helios. Он построен spotify и не пытается сделать слишком много.

https://github.com/spotify/helios