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

Итак, я недавно обнаружил этот потрясающий инструмент, и он говорит

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

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

Ответ 1

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

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

Обновление 1

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

Обновление 2

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

Обновление 3

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

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

Обновление 4

Чистая статья о том, как объединить контейнеры докеров с помощью Serf:

Обновление 5

Запустите Docker на Mesos, используя Marathon рамки

Учебник разработчика Docker для мезосферы

Обновление 6

Запустите Docker на Tsuru, поскольку он поддерживает docker-cluster и раздельный планировщик развертывания

Обновление 7

Согласование среды на основе докеров

maestro-ng

Обновление 8

decking.io

Обновление 9

Google kubernetes

Обновление 10

Redhat реорганизовали свою открытую PAAS для интеграции Docker

Обновление 11

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

Обновление 12

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

Обновление 13

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

https://clusterhq.com/

Обновление 14

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

http://panamax.io/

Обновление 15

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

Обновление 16

Spotify Helios

См. также:

Обновление 17

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

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

Обновление 18

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

http://rancher.com/

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

Обновление 19

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

Обновление 20

Докер недавно купил Tutum:

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/

Ответ 2

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

Deis (произносится DAY-iss) - это открытый PaaS с открытым исходным кодом, который упрощает развертывание и управление приложениями на ваших собственных серверах. Deis основывается на Docker и 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.

Ответ 3

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

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

Взгляните в нашу документацию ниже: http://docs.tsuru.io/

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

Ответ 4

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

Ответ 5

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

  • Каждая служба будет контейнером docker
  • Обнаружение контейнерных сервисов Intra через ссылки (новая функция от docker 0.6.5)
  • Контейнеры будут развернуты через Dokku
  • Управление приложениями осуществляется через Shipyard, который, в свою очередь, использует hipache

Другой проект с открытым исходным кодом для докеров с Яндекса:

Ответ 6

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

Ответ 7

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

Лонгшоран из людей Wayfinder:

https://github.com/longshoreman/longshoreman

Decker от пользователей CloudCredo, используя CloudFoundry:

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

Что касается прямой оркестровки, проект Newcentre с открытым исходным кодом Centurion выглядит довольно многообещающим:

https://github.com/newrelic/centurion

Ответ 8

Посмотрите также на etcd и Consul.

Ответ 9

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

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

Ответ 10

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

https://github.com/spotify/helios