Как масштабировать докерные контейнеры в производстве
Итак, я недавно обнаружил этот потрясающий инструмент, и он говорит
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