Üretimde Docker kaplarının ölçeklendirilmesi


139

Son zamanlarda bu harika aracı keşfettim ve diyor ki

Docker, herhangi bir uygulamadan kolayca hafif, taşınabilir, kendi kendine yeten kaplar oluşturmak için açık kaynaklı bir projedir. Bir geliştiricinin bir dizüstü bilgisayarda oluşturduğu ve test ettiği aynı kapsayıcı, üretimde, VM'lerde, çıplak metallerde, OpenStack kümelerinde, genel bulutlarda ve daha fazlasında ölçeklenebilir.

Diyelim ki Nginx'i çalıştıran bir docker görüntüm var ve bir web sitesi harici veritabanına bağlanıyor. Üretimde kabı nasıl ölçeklendiririm?

Yanıtlar:


587

Güncelleme: 2019-03-11

Her şeyden önce, yıllar boyunca bu cevabı iptal edenler için teşekkürler.

Bu sorunun Docker'ın hala çok yeni bir teknoloji olduğu Ağustos 2013'te sorulduğunu lütfen unutmayın. O zamandan beri: Kubernetes Haziran 2014'te piyasaya sürüldü, Docker sürüsü Şubat 2015'te Docker motoruna entegre edildi, Amazon Nisan 2015'te konteyner çözümü ECS'yi başlattı ve Google Ağustos 2015'te GKE'yi piyasaya sürdü . önemli ölçüde değişti.


Kısa cevap, bunu yapmak için kendi mantığınızı yazmanız gerektiğidir.

Bu tür bir özelliğin, liman işçisinin üzerine inşa edilmiş ve üretimdeki uygulamaları desteklemek için tasarlanmış aşağıdaki projelerden ortaya çıkmasını beklerim:

Güncelleme 1

Yakın zamanda keşfettiğim bir diğer ilgili proje:

Güncelleme 2

En son sürüm Openstack, Docker kapsayıcılarını yönetmek için destek içerir:

Güncelleme 3

Docker örneklerini yönetme sistemi

Ve değişmez bir sunucu altyapı modeli sunmak için Packer , Docker ve Serf gibi araçların nasıl kullanılacağına dair bir sunum

Güncelleme 4

Kullanarak liman işçisi kapları birbirine lantÛlarÛyla ilgili bir düzgün makale serf :

Güncelleme 5

Maraton çerçevesini kullanarak Docker'ı Mesos'ta çalıştırın

Mezosfer Docker Geliştirici Eğitimi

Güncelleme 6

Çalıştır Docker Tsuru desteklediği olarak liman işçisi-küme ve ayrılmış zamanlayıcı dağıtmaya

Güncelleme 7

Docker tabanlı ortamların düzenlenmesi

Maestro-ng

Güncelleme 8

decking.io

Güncelleme 9

Google kübernetleri

Güncelleme 10

Dohat, Docker'ı entegre etmek için openhift PAAS'larını yeniden düzenledi

Güncelleme 11

Docker komut satırını saran ve bir json dosyasından yöneten bir Docker NodeJS kütüphanesi.

Güncelleme 12

Amazon'un yeni konteyner hizmeti kümede ölçeklendirme sağlar.

Güncelleme 13

Kesin olarak konuşan Flocker uygulamaları "ölçeklemez", ancak durum bilgisi olan kapları (veritabanı hizmetlerini çalıştırıyor mu?) Birden çok docker ana makinesinde taşınabilir hale getirme ile ilgili bir işlevi yerine getirmek için tasarlanmıştır:

https://clusterhq.com/

Güncelleme 14

Docker uygulamalarını tanımlayan taşınabilir şablonlar oluşturma projesi:

http://panamax.io/

Güncelleme 15

Docker projesi şimdi düzenlemeye yerel olarak hitap ediyor ( Duyuruya bakın )

Güncelleme 16

Spotify Helios

Ayrıca bakınız:

Güncelleme 17

OpenStack projesinin şimdi Magnum adlı yeni bir "hizmet olarak konteyner" projesi var:

Çok fazla söz veriyor, Kubernetes ve Docker sürüsü gibi Docker düzenleme çerçevelerinin kolay kurulumunu sağlıyor.

Güncelleme 18

Rancher hızla olgunlaşan bir proje

http://rancher.com/

Hibrit Docker altyapılarına hoş UI ve güçlü odaklanma

Güncelleme 19

Kafes proje konteyner kümeleri yönetmek için Bulut Foundry'den bir dalı olduğunu.

Güncelleme 20

Docker kısa süre önce Tutum'u satın aldı:

https://www.docker.com/tutum

Güncelleme 21

Kubernetes'e dağıtılan uygulamalar için paket yöneticisi .

http://helm.sh/

Güncelleme 22

Vamp, konteyner teknolojisine dayanan (mikro) hizmet odaklı mimarileri yönetmek için açık kaynaklı ve kendi kendine barındırılan bir platformdur.

http://vamp.io/

Güncelleme 23

Dağıtılmış, Oldukça Kullanılabilir, Veri Merkezi Duyarlı Zamanlayıcı

Bize Vagrant ve diğer güçlü araçları veren adamlardan.

Güncelleme 24

AWS, açık kaynak kodlu ve Kubernetes tabanlı konteyner barındırma çözümü

https://supergiant.io/

Güncelleme 25

Almanya'da bulunan Apache Mesos merkezli konteyner

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

Docker Inc. ayrıca Docker bulut adı verilen bir konteyner barındırma hizmeti de sunmaktadır.

https://cloud.docker.com/

Güncelleme 26

Jelastic , konteynerleri otomatik olarak ölçeklendiren, barındırılan bir PAAS hizmetidir.


1
openstack bu liste için başka bir aday
ben

@benschwartz Çok doğru, ancak yalnızca en son sürümde.
Mark O'Connor

Vay be, Dock - ben — sen Rockin Fock! Teşekkürler!
jredd

2
@ MarkO'Connor mesosphere/mesos-dockerProje kullanımdan kaldırıldı ve onun tarafından değiştirildi mesosphere/deimos: github.com/mesosphere/deimos
Ross Allen

1
Ayrıca, Google'dan bakmaya değer - github.com/GoogleCloudPlatform/kubernetes
mjsalinger

42

Deis , Docker konteynerlerinin ölçeklendirilmesini otomatikleştirir (diğer şeylerin yanı sıra).

Deis (DAY-iss olarak telaffuz edilir), uygulamaları kendi sunucularınıza dağıtmayı ve yönetmeyi kolaylaştıran açık kaynaklı bir PaaS'tır. Deis, Heroku'dan ilham alan bir iş akışına sahip hafif bir PaaS sağlamak için Docker ve CoreOS'u temel alır .

Geliştirici iş akışı:

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 kapsayıcılarınızı otomatik olarak bir CoreOS kümesinde dağıtır ve Nginx yönlendiricileri istekleri sağlıklı Docker kapsayıcılarına yönlendirecek şekilde yapılandırır. Bir ana bilgisayar ölürse, kapsayıcılar birkaç saniye içinde başka bir ana bilgisayarda otomatik olarak yeniden başlatılır. Proxy URL'sine göz atmanız veya deis openuygulamanıza vurmak için kullanmanız yeterlidir.

Diğer bazı yararlı komutlar:

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

Bunu çalışırken görmek için http://deis.io/overview/ adresindeki terminal videosuna göz atın . Ayrıca edebilirsiniz Duzevic kavramlar hakkında bilgi edinmek sağa doğru veya atlama kendi özel PaaS dağıtma .


3
+1 Projenizi ilgi ile izliyorum. İyi işlere devam edin!
Mark O'Connor

19

Tsuru'yu deneyebilirsiniz. Tsuru, Heroku'dan esinlenen bir açık kaynak PaaS'dır ve halihazırda Globo.com'da (Brezilya'nın en büyük Yayın Televizyon Şirketi'nin internet kolu) üretimde olan bazı ürünlerle birlikte

Konteyner oluşturma, dağıtma, docker kümesi, birimlerin ölçeklendirilmesi, ayrılmış dağıtım vb.Gibi birçok güzel özellikle (hipache ile) yönlendirme yaptığı için bir uygulamanın tüm akışını yönetir.

Aşağıdaki belgelerimize bir göz atın: http://docs.tsuru.io/

İşte çevremizi kapsayan yazımız : http://blog.tsuru.io/2014/04/04/running-tsuru-in-production-scaling-and-segregating-docker-containers/


18

Rancher.com'a bir göz atın - birden fazla Docker ana bilgisayarını ve çok daha fazlasını yönetebilir.


Rancher açık kaynaklıdır ve Kubernetes'in tam bir dağıtımını içerir. Birçok farklı kümeyi çalıştırmak, altyapıyı yönetmek ve çalışan konteynerleri önemli ölçüde basitleştirmek için bir platform sağlar.
Shannon Williams

9

Docker'ı ölçeklendirmek için mantıklı bir yaklaşım şunlar olabilir:

  1. Her hizmet bir liman işyeri konteyneri olacaktır
  2. Bağlantılar aracılığıyla yönetilen konteyner içi hizmet keşfi ( liman işçisinden 0.6.5 yeni özellik )
  3. Konteynerler Dokku üzerinden dağıtılacak
  4. Başvurular sırayla hipache kullanan Tersane ile yönetilecek

Yandex'den bir başka liman işçisi açık kaynaklı proje:


Tersanenin yanında Dokku'nun nasıl kullanılacağı hakkında daha fazla tavsiye verebilir misiniz?
djskinner


2

Openshift çocuklar da bir proje yarattı. Daha fazla bilgiyi burada bulabilir , test kabını ve ayrıntılı bilgileri burada deneyebilirsiniz . Tek sorun şu an için çözüm Redhat merkezli :)


2

Deis'in (deis.io) büyük hayranlarıyken ve aktif olarak konuşlandırırken, PaaS tarzı dağıtım çözümleri gibi diğer Heroku da var:

Wayfinder milletinden Longshoreman:

https://github.com/longshoreman/longshoreman

CloudFoundry kullanarak CloudCredo milletinden Decker:

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

Doğrudan düzenleme konusunda, NewRelic'in açık kaynaklı Centurion projesi oldukça umut verici görünüyor:

https://github.com/newrelic/centurion



1

Panamax: İnsanlar için Docker Yönetimi. panamax.io

Şekil: Docker kullanan hızlı, izole geliştirme ortamları. fig.sh


Bence Fig henüz çoklu ana bilgisayar dağıtımını desteklemiyor.
lolski

Öyle mi! Yani, tek bir ana bilgisayarın içindeki uygulamaların kurulumunu düzenlemenize yardımcı olur mu?
fatuhoku

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.