Jak skalować kontenery Docker w produkcji

Więc niedawno odkryłem to niesamowite narzędzie, i mówi

Docker jest projektem open-source, który pozwala łatwo tworzyć lekkie, przenośne, samowystarczalne pojemniki z każdej aplikacji. To samo kontener, który programista buduje i testuje na laptopie, może działać w skala, w produkcji, na maszynach wirtualnych, bare metal, klastry OpenStack, publiczne chmury i nie tylko.

Załóżmy, że mam obraz dokera, który działa Nginx i strona internetowa łączy się z zewnętrzną bazą danych. Jak skalować pojemnik w produkcji?

Author: Tshepang, 2013-08-17

10 answers

Krótka odpowiedź jest taka, że musiałbyś napisać własną logikę, aby to zrobić.

Spodziewałbym się, że tego rodzaju funkcja pojawi się w następujących projektach, zbudowanych na bazie Dockera i zaprojektowanych do obsługi aplikacji w produkcji:

Update 1

Kolejny powiązany projekt i ostatnio odkryte:

Update 2

Najnowsza wersja Openstack zawiera wsparcie dla zarządzania kontenerami Dockera:

Update 3

System do zarządzania instancjami Dockera

Oraz prezentację jak używać narzędzi takich jak Packer , Docker i Serf do dostarczania immutable server infrastructure pattern

Update 4

Zgrabny artykuł o tym, jak połączyć kontenery dokera za pomocą serf :

Update 5

Uruchom Dockera na Mesos za pomocą Marathon framework

Mezosfera Docker Developer Tutorial

Update 6

Uruchom Docker na Tsuru ponieważ obsługuje Docker-cluster i segregowany scheduler deploy

Update 7

Docker-based environments orchestration

Maestro-ng

Update 8

Decking.io

Update 9

Google kubernetes

Update 10

Redhat zrefakturował OpenShift PAAS, aby zintegrować Dockera]}

Update 11

Docker NodeJS lib owijanie wiersza poleceń Dockera i zarządzanie nim z pliku json.

Update 12

Nowa usługa kontenera Amazona umożliwia skalowanie w klastrze.

Update 13

Ściśle mówiąc Flocker nie "skaluje" aplikacji, ale ma za zadanie stworzyć powiązaną funkcję tworzenia kontenerów stanowych (uruchamianie usług baz danych?) przenośne na wielu hostach docker:

Https://clusterhq.com/

Update 14

Projekt tworzenia przenośnych szablonów opisujących aplikacje Docker:

Http://panamax.io/

Update 15

Projekt Docker jest teraz adresowany natywnie (Zobacz ogłoszenie )

Update 16

Spotify Helios

Zobacz też:

Update 17

Projekt Openstack ma teraz nowy projekt "container as a service" o nazwie Magnum:

Pokazuje wiele obietnic, umożliwia łatwą konfigurację frameworków orkiestracji Dockera, takich jak Kubernetes i Docker swarm.

Update 18

Rancher to projekt, który szybko dojrzewa

Http://rancher.com/

Ładny interfejs użytkownika i silny nacisk na infrastrukturę hyrbrid Docker

Update 19

Projekt krata jest odgałęzieniem chmury Odlewnia do zarządzania klastrami kontenerowymi.

Update 20

Docker ostatnio kupił Tutum:

Https://www.docker.com/tutum

Update 21

Menedżer pakietów dla aplikacji wdrożonych na Kubernetes .

Http://helm.sh/

Update 22

Vamp jest platformą open source i self-hostowaną do zarządzania (mikro)architekturami zorientowanymi na usługi, które opierają się na technologii kontenerów.

Http://vamp.io/

Update 23

Rozproszony, Wysoce Dostępny Scheduler Obsługujący Centrum Danych

Od facetów, którzy dali nam włóczęgę i inne potężne narzędzia.

Update 24

Rozwiązanie Container hosting dla AWS, open source i oparte na Kubernetes

Https://supergiant.io/

Update 25

Apache Mesos based container hosting w Niemczech

Https://sloppy.io/features/#features

I Docker Inc. zapewnia również usługę hostingu kontenerów o nazwie Docker cloud

Https://cloud.docker.com/

Update 26

Jelastic {[7] } to hostowana usługa PAAS, która automatycznie skaluje kontenery.

 549
Author: Mark O'Connor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-06 15:34:46

Deis automatyzuje skalowanie kontenerów Docker (między innymi).

Deis (wymawiane DAY-iss) jest open source PaaS, który ułatwia wdrażanie i zarządzanie aplikacjami na własnych serwerach. Deis opiera się na Dockeri CoreOS, aby zapewnić lekki system PaaS z przepływem pracy inspirowanym Heroku.

Oto przebieg pracy programisty:

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 automatycznie wdraża kontenery Docker w klastrze CoreOS i konfiguruje Nginx routery do kierowania żądań do zdrowych kontenerów Docker. Jeśli host umrze, kontenery zostaną automatycznie uruchomione ponownie na innym hoście w ciągu kilku sekund. Po prostu przejdź do adresu URL serwera proxy lub użyj deis open, aby trafić w swoją aplikację.

Inne przydatne polecenia:

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

Aby zobaczyć to w akcji, sprawdź wideo terminala na http://deis.io/overview/. Możesz również dowiedzieć się o koncepcjach Deis lub przejść od razu do wdrażania własnych prywatnych PaaS.

 39
Author: gabrtv,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-28 15:59:57

Zobacz Rancher.com - może zarządzać wieloma hostami Docker i wiele więcej.

 17
Author: dublx,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-16 00:05:05

Możesz spróbować Tsuru. Tsuru jest opensource PaaS inspirowane w Heroku, i jest już z niektórych produktów w produkcji w Globo.com(internetowe ramię największej firmy telewizyjnej w Brazylii)

Zarządza całym przepływem aplikacji, od tworzenia kontenerów, wdrażania, routingu (z hipache) z wieloma ciekawymi funkcjami, takimi jak klaster docker, skalowanie jednostek, rozdzielone wdrożenie itp.

Zajrzyj do naszej dokumentacji bellow: http://docs.tsuru.io/

Tutaj nasz post dotyczący naszego środowiska: http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/

 17
Author: Magno Torres,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-07 15:36:04

Sensownym podejściem do skalowania Dockera może być:

  1. każda usługa będzie Docker kontenerem
  2. Intra Container Service discovery zarządzane przez łącza ( nowa funkcja z Dockera 0.6.5)
  3. kontenery będą rozmieszczone przez Dokku
  4. aplikacje będą zarządzane przez Stocznię , która z kolei korzysta z hipache

Kolejny Docker open source project z Yandex:

 8
Author: tommasop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-02 08:28:39

Chłopaki z Openshift również stworzyli projekt. Więcej informacji znajdziesz tutaj , wypróbuj Pojemnik testowy i szczegółowe informacje tutaj. Jedynym problemem jest rozwiązanie na razie Redhat centric:)

 2
Author: Kunthar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-19 10:55:20

While we ' re big fans of Deis (deis.io) i aktywnie wdrażają do niego, istnieją inne rozwiązania wdrożeniowe w stylu Heroku, takie jak PaaS, w tym:

Longshoreman z Wayfinder:

Https://github.com/longshoreman/longshoreman

Decker from the CloudCredo folks, using CloudFoundry:

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

Jeśli chodzi o prostą aranżację, to opensource Centurion NewRelic projekt wydaje się całkiem obiecujący:

Https://github.com/newrelic/centurion

 2
Author: IanBlenke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-25 18:07:41

Spójrz także na etcd iConsul .

 1
Author: Ricardo Silva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-01 12:37:19

Panamax: Zarządzanie Dokerami dla ludzi. panamax.io

Rys.: szybkie, izolowane Środowiska programistyczne z użyciem Dockera. fig.sh

 1
Author: rus1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-05 21:37:24

Jedną z opcji nie wymienionych w innych postach jest Helios. Jest zbudowany przez spotify i nie stara się robić zbyt wiele.

Https://github.com/spotify/helios

 1
Author: Chris Dail,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-24 20:02:29