2015-03-22 16 views
83

Szukam jakichś plusów i minusów, czy iść z Marathon i Chronos, Docker Swarm lub Kubernetes podczas uruchamiania kontenerów Docker na DC/OS.Marathon vs Kubernetes kontra Docker Swarm na DC/OS z kontenerami Docker

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

Obecnie koncentruję się głównie na eksperymentowaniu, ale mam nadzieję, że po lecie zaczniemy używać jednej z tych usług w produkcji. To może zdyskwalifikować Docker Swarm, ponieważ nie jestem pewien, czy to będzie produkcja gotowa do tego czasu.

To co podoba mi się w Docker Swarm to to, że jest to po prostu "polecenie Dockera" i nie musisz uczyć się czegoś zupełnie nowego. Już używamy docker-compose i to będzie działać po wyjęciu z pudełka z Docker Swarm (przynajmniej teoretycznie), więc byłby to duży plus. Moją główną troską z Docker Swarm jest to, czy obejmie wszystkie przypadki użycia wymagane do uruchomienia systemu w produkcji.

Odpowiedz

151

Postaram się przełamać wyjątkowe aspekty każdej struktury orkiestracji kontenerów na Mesach.

Zastosowanie Docker Swarm jeżeli:

Zastosowanie Kubernetes-Mesos jeżeli:

  • chcesz uruchomić K8S Strąki, które są grupami pojemników wspólnie zaplanowane i kolokacji razem, współdzielenia zasobów.
  • Chcesz uruchomić usługę obok jednego lub więcej kontenerów pomocniczych (np. Archiwizatora, monitora danych), które znajdują się obok kontenera nadrzędnego.
  • Użytkownik chce korzystać z wykrywania usług opartych na etykietach K8s, równoważenia obciążenia i kontroli replikacji.
  • Zobacz http://kubernetesio.blogspot.com/2015/04/kubernetes-and-mesosphere-dcos.html

Używaj Marathon jeżeli:

  • chcesz uruchomić Döcker lub jednorazowych dokowane długo uruchomionych aplikacji/usług.
  • Chcesz użyć atrybutów Mesos do planowania opartego na ograniczeniach.
  • Chcesz używać grup aplikacji i zależności w celu uruchamiania, skalowania lub ulepszania powiązanych usług.
  • Chcesz korzystać z kontroli stanu w celu automatycznego ponownego uruchomienia niezdrowych usług lub wycofania niezdrowych wdrożeń/uaktualnień.
  • Chcesz zintegrować HAProxy lub Consul do wykrywania usług.
  • Chcesz uruchomić i monitorować aplikacje za pomocą interfejsu WWW lub interfejsu REST API.
  • Chcesz użyć szkieletu zbudowanego od początku z myślą o Mesach.

Zastosowanie Chronos jeżeli:

  • chcesz uruchomić dokowane lub non-dokowane zadania, które są oczekiwane, aby wyjść.
  • Chcesz zaplanować uruchamianie zadania o określonej godzinie/harmonogramie (a la cron).
  • Chcesz zaplanować przepływ zadań DAG zależnych zadań.
  • Chcesz uruchomić i monitorować zadania za pomocą interfejsu WWW lub interfejsu REST API.
  • Chcesz użyć szkieletu zbudowanego od początku z myślą o Mesach.
+1

Chciałem tylko dodać, że od K8S 1,6 go obsługuje następujące (niektóre z nich przez długi czas): * Docker-CRI (beta) oraz CRI-o, frakti, RKT (alfa) dla nie kontenerów Docker. * Kontrola stanu umożliwia sprawdzenie, kiedy kontener się uruchomił/przestał odpowiadać. * Odtwarzanie niezdrowych strąków. * Praca typu Cron, zarówno cykliczna, jak i jednorazowa. * Zadania wsadowe (uruchamiane ręcznie i uruchamiane do ukończenia raz). Odkąd [Mesosphere się] (https://mesosphere.com/blog/2015/09/25/kubernetes-and-the-dcos/) mówią, że K8s jest obywatelem pierwszej klasy na Mesos, argument "zbudowany od początku" jest odczuwalny trochę nieciekawe ... –

Powiązane problemy