Marathon vs Kubernetes vs Docker Swarm na DC / OS z kontenerami Docker

Szukam pewnych plusów i minusów, czy używać Marathon i Chronos, Docker Swarm lub Kubernetes podczas uruchamiania kontenerów Docker na DC/OS.

Na przykład, kiedy lepiej używać Marathon / Chronos niż Kubernetes i odwrotnie?

W tej chwili głównie eksperymentuję, ale mam nadzieję, że zaczniemy korzystać z jednej z tych usług w produkcji po lecie. Może to dyskwalifikować Docker Swarm, ponieważ nie jestem pewien, czy do tego czasu będzie gotowy do produkcji.

To, co lubię w Docker Swarm, to to, że jest to po prostu "polecenia Dockera" i nie musisz się uczyć czegoś zupełnie nowego. Używamy już docker-compose i to będzie działać po wyjęciu z pudełka z Docker Swarm (przynajmniej w teorii), więc byłby to duży plus. Moim głównym zmartwieniem w Docker Swarm jest to, czy obejmie wszystkie przypadki użycia wymagane do uruchomienia systemu w produkcji.

Author: Michael Hausenblas, 2015-03-22

2 answers

Postaram się podzielić unikalne aspekty każdego frameworka orkiestracji kontenerów na Mesos.

Użyj Docker Swarm Jeśli:

Użyj Kubernetes-Mezos if:

  • chcesz uruchomić K8s Pods, które są grupami kontenerów współdzielonych i współdzielonych razem, dzieląc zasoby.
  • chcesz uruchomić usługę wraz z jednym lub kilkoma kontenerami sidekick (np. Archiver dziennika, monitor metrics), które znajdują się obok kontenera nadrzędnego.
  • chcesz użyć usługi opartej na etykietach K8s-wykrywania, równoważenia obciążenia i kontroli replikacji.
  • Zobacz http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

Użyj Marathon Jeśli:

  • chcesz uruchomić aplikacje/usługi Docker lub non-Docker.
  • chcesz użyć atrybutów Mesos do planowania opartego na ograniczeniach.
  • chcesz używać grup aplikacji i zależności do uruchamiania, skalowania lub uaktualniania powiązanych usług.
  • chcesz skorzystać z kontroli zdrowia, aby automatycznie ponownie uruchomić niezdrowe usługi lub wycofywanie niezdrowych wdrożeń/aktualizacji.
  • chcesz zintegrować HAProxy lub Konsul do wykrywania usług.
  • chcesz uruchamiać i monitorować aplikacje za pośrednictwem interfejsu WWW lub REST API.
  • chcesz użyć frameworka zbudowanego od początku z myślą o Mezos.

Użyj Chronos Jeśli:

  • chcesz uruchomić zadania Docker lub nie-Docker, które mają zostać zakończone.
  • chcesz zaplanować zadanie do uruchomienia w określonym czasie / harmonogramie (a la cron).
  • chcesz zaplanować przepływ pracy dag zadań zależnych.
  • chcesz uruchamiać i monitorować zadania za pomocą interfejsu WWW lub REST API.
  • chcesz użyć frameworka zbudowanego od początku z myślą o Mezos.
 162
Author: Adam,
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-23 06:06:23

Chociaż jest to trochę przestarzałe, pomocne może być przeczytanie Jaka jest różnica między Mesos Apache i Kubernetes Google , aby uzyskać podstawy. Należy również pamiętać, że Mesos działa na innym poziomie niż Kubernetes/Marathon/Chronos. Na koniec Zobacz Docker Swarm + Mesos autorstwa Timothy ' ego Chena, pamiętając, że Marathon i Swarm mogą działać jednocześnie na tym samym klastrze Mezos.

 14
Author: Michael Hausenblas,
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
2017-05-23 11:55:09