Docker kapsayıcılarıyla DC / OS'de Marathon, Kubernetes ve Docker Swarm


101

Docker container'larını DC / OS'de çalıştırırken Marathon ve Chronos, Docker Swarm veya Kubernetes ile gidip gitmemenin bazı artılarını ve eksilerini arıyorum.

Örneğin, Marathon / Chronos'u Kubernetes'ten ne zaman kullanmak daha iyidir ve bunun tersi de geçerlidir?

Şu anda çoğunlukla deneyler yapıyorum ama umarım bu hizmetlerden birini yazdan sonra üretimde kullanmaya başlayacağız. O zamana kadar üretime hazır olup olmayacağından emin olmadığım için bu Docker Swarm'ı diskalifiye edebilir.

Docker Swarm hakkında sevdiğim şey, aslında sadece "Docker komutları" olması ve tamamen yeni bir şey öğrenmenize gerek olmamasıdır. Zaten kullanıyoruz docker-composeve bu, Docker Swarm ile kutudan çıkacak (en azından teoride), bu büyük bir artı olacaktır. Docker Swarm ile ilgili temel endişem, üretimde bir sistemi çalıştırmak için gereken tüm kullanım durumlarını kapsayıp kapsamayacağıdır.

Yanıtlar:


167

Mesos'taki her konteyner düzenleme çerçevesinin benzersiz yönlerini parçalamaya çalışacağım.

Docker Swarm'ı şu durumlarda kullanın :

Aşağıdaki durumlarda Kubernetes-Mesos'u kullanın :

  • Kaynakları paylaşarak birlikte planlanan ve birlikte konumlandırılan konteyner grupları olan K8s Pod'larını başlatmak istiyorsunuz.
  • Üst kapsayıcının yanında yaşayan bir veya daha fazla yardımcı kapsayıcı (örn. Günlük arşivleyici, ölçüm monitörü) ile birlikte bir hizmet başlatmak istiyorsunuz.
  • K8'in etiket tabanlı hizmet keşfini, yük dengelemesini ve çoğaltma denetimini kullanmak istiyorsunuz.
  • Bkz. Http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

Kullanım Maraton eğer:

  • Docker veya Docker dışı uzun süre çalışan uygulamaları / hizmetleri başlatmak istiyorsunuz.
  • Kısıt tabanlı zamanlama için Mesos özniteliklerini kullanmak istiyorsunuz.
  • İlgili hizmetleri başlatmak, ölçeklendirmek veya yükseltmek için Uygulama Gruplarını ve Bağımlılıkları kullanmak istiyorsunuz.
  • Sağlıksız hizmetleri otomatik olarak yeniden başlatmak veya sağlıksız dağıtımları / yükseltmeleri geri almak için sağlık denetimlerini kullanmak istiyorsunuz.
  • Hizmet keşfi için HAProxy veya Consul'u entegre etmek istiyorsunuz.
  • Uygulamaları bir web UI veya REST API aracılığıyla başlatmak ve izlemek istiyorsunuz.
  • Başlangıçtan itibaren Mesos düşünülerek oluşturulmuş bir çerçeve kullanmak istiyorsunuz.

Chronos'u şu durumlarda kullanın :

  • Çıkması beklenen Docker veya Docker dışı görevleri başlatmak istiyorsunuz.
  • Belirli bir zamanda / zamanlamada (a la cron) çalışacak bir görev zamanlamak istiyorsunuz .
  • Bağımlı görevlerin DAG iş akışını planlamak istiyorsunuz.
  • İşleri bir web kullanıcı arayüzü veya REST API aracılığıyla başlatmak ve izlemek istiyorsunuz.
  • Başlangıçtan itibaren Mesos düşünülerek oluşturulmuş bir çerçeve kullanmak istiyorsunuz.

1
Ben sadece bunu K8s 1.6'dan itibaren eklemek istedim (bazıları uzun süredir): * Docker-CRI (beta) ve Docker olmayan konteynerler için cri-o, frakti, rkt (alpha). * Bir kapsayıcının ne zaman başladığını / artık yanıt vermediğini görmek için sağlık kontrolleri. * Sağlıksız baklaların rekreasyonu. * Cron benzeri işler, hem tekrar eden hem de bir kez. * Toplu işler (manuel olarak başlatılır ve tamamlanana kadar bir kez çalışır). Yana Mezosferde kendilerini K8S Mesos "baştan inşa" konulu birinci sınıf vatandaş olduğunu söylemek argüman ... yanı biraz Wague hissediyor
Jonas Schubert Erlandsson

15

Biraz modası geçmiş olsa da , temel bilgilerden bazılarını doğru bir şekilde elde etmek için Apache'nin Mesos'u ile Google'ın Kubernetes'i arasındaki fark nedir okumak yararlı olabilir . Ayrıca Mesos'un Kubernetes / Marathon / Chronos'tan farklı bir seviyede çalıştığını unutmayın. Son olarak , Marathon ve Swarm'ın aynı Mesos kümesi üzerinde aynı anda çalışabileceğini göz önünde bulundurarak Timothy Chen tarafından yazılan Docker Swarm + Mesos'a bakın .

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.