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


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

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

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

10 139

10 ответов:

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

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

обновление 1

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

обновление 2

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

обновление 3

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

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

обновление 4

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

обновление 5

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

Mesosphere Docker Developer Tutorial

обновление 6

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

обновление 7

Docker-based environments orchestration

маэстро-НГ

обновление 8

decking.io

обновление 9

Google kubernetes

обновление 10

Редхат были переработать свой openshift PaaS-платформы для интеграции Докер

обновление 11

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

обновление 12

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

обновление 13

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

https://clusterhq.com/

обновление 14

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

http://panamax.io/

обновление 15

проект "докер" в настоящее время рассматривает согласование исходно (см. объявление)

обновление 16

Spotify Helios

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

обновление 17

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

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

обновление 18

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

http://rancher.com/

приятный пользовательский интерфейс и сильный акцент на hyrbrid инфраструктуры Докер

обновление 19

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

обновление 20

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

https://www.docker.com/tutum

обновление 21

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

http://helm.sh/

обновление 22

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

http://vamp.io/

обновление 23

Распределенный, Высокодоступный, Ориентированный На Центр Обработки Данных Планировщик

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

обновление 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 через a 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 вдохновил в Heroku, и это уже с некоторыми продуктами в производстве на Globo.com (интернет-подразделение крупнейшей вещательной телевизионной компании в Бразилии)

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

посмотреть в нашей документации реветь: 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 centric на данный момент:)

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

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

https://github.com/longshoreman/longshoreman

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

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

Как по прямым оркестровка, проект NewRelic с открытым исходным кодом Centurion кажется довольно перспективным:

https://github.com/newrelic/centurion

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

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

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

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

https://github.com/spotify/helios