Docker-Swarm, Kubernetes, Mesos & Core-OS Fleet

Jestem stosunkowo nowy w tych wszystkich, ale mam problemy z uzyskaniem jasnego obrazu Wśród wymienionych technologii.

Choć wszystkie z nich starają się rozwiązać różne problemy, ale mają też rzeczy wspólne. Chciałbym zrozumieć, co jest wspólne, a co inne. Jest prawdopodobne, że połączenie kilku byłoby świetne dopasowanie, Jeśli tak, co to jest?

Wymieniam kilka z nich wraz z pytaniami, ale byłoby świetnie, gdyby ktoś wymienił wszystkie je szczegółowo i odpowiada na pytania.

  1. Kubernetes vs Mezos:

    This link

    Jaka jest różnica między Mezos Apache i Kubernetes Google

    Zapewnia dobry wgląd w różnice, ale nie jestem w stanie zrozumieć, dlaczego Kubernetes powinien działać na Mezos. Czy chodzi bardziej o połączenie dwóch rozwiązań opensource?

  2. Kubernetes vs Core-OS Fleet:

    Jeśli używam kubernetes, czy potrzebna jest flota?

  3. Jak Docker-Swarm pasuje do wszystkich powyższych?

Author: Community, 2014-12-24

4 answers

Ujawnienie: jestem głównym inżynierem na Kubernetes

Myślę, że Mesos i Kubernetes są w dużej mierze ukierunkowane na rozwiązywanie podobnych problemów związanych z uruchomieniem aplikacji klastrowych, mają różne historie i różne podejścia do rozwiązania problemu.

Mesos skupia swoją energię na bardzo ogólnym harmonogramie i podłączaniu wielu różnych harmonogramów. Oznacza to, że umożliwia to współistnienie systemów takich jak Hadoop i Marathon w tym samym środowisku planowania. Mezos jest mniej skupiony na obsłudze kontenerów. Mesos istniał przed powszechnym zainteresowaniem kontenerami i został ponownie uwzględniony w częściach, aby wspierać kontenery.

Natomiast Kubernetes został zaprojektowany od podstaw jako środowisko do budowania aplikacji rozproszonych z kontenerów. Obejmuje on prymitywy do replikacji i wykrywania usług jako podstawowe prymitywy, gdzie-jako takie rzeczy są dodawane za pomocą frameworków w Mezos. Podstawowym celem Kubernetes jest system do budowania, uruchamiania i zarządzanie systemami rozproszonymi.

Flota jest dystrybutorem zadań niższego szczebla. Jest to przydatne do bootstrapowania systemu klastrowego, na przykład CoreOS używa go do dystrybucji agentów i binariów kubernetes na maszyny w klastrze w celu podkręcenia klastra kubernetes. Tak naprawdę nie jest przeznaczony do rozwiązywania tych samych problemów związanych z rozwojem aplikacji rozproszonych, pomyśl o tym bardziej jak systemd/INIT.d / upstart dla Twojego klastra. Nie jest wymagane, jeśli używasz kubernetes, możesz użyć Inne narzędzia (np. sól, Pacynka, Ansible, kucharz, ...) do osiągnięcia tej samej dystrybucji binarnej.

Swarm jest wysiłkiem Dockera, aby rozszerzyć istniejące Docker API, aby klaster maszyn wyglądał jak pojedynczy Docker API. Zasadniczo, nasze doświadczenie w Google i w innych miejscach wskazuje, że API węzła jest niewystarczające dla API klastra. Możesz zobaczyć kilka dyskusji na ten temat tutaj: https://github.com/docker/docker/pull/8859 i tutaj: https://github.com/docker/docker/issues/8781

Mam nadzieję, że to pomoże! Dołącz do nas na IRC @ # google-containers jeśli chcesz porozmawiać więcej.

 139
Author: brendan,
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-12 18:29:47

Myślę, że najprostszą odpowiedzią jest to, że nie ma prostej odpowiedzi. Szybki wzrost mocy kontenerów, a w szczególności Docker, pozostawił próżnię dla "planowania i orkiestracji kontenerów", cokolwiek to może oznaczać. W rzeczywistości oznacza to, że masz wiele technologii, które mogą działać w harmonii na niektórych poziomach, ale z pewnymi aspektami w konkurencji. Na przykład Kubernetes może być używany jako punkt kompleksowej obsługi do wdrażania kontenerów i zarządzania nimi w klastrze obliczeniowym (jak Google pierwotnie zaprojektowany), ale może również siedzieć na szczycie floty, wykorzystując poziom odporności, jaki flota zapewnia Na CoreOS.

Jak stwierdza ten Google vid Kubernetes nie jest kompletnym rozwiązaniem do skalowania kontenerów, ale jest dobrym rozwiązaniem na początek. W ten sam sposób na pewnym etapie można oczekiwać, że Apache Mesos będzie w stanie współpracować z Kubernetes, ale nie z Marathon, w takim stopniu, w jakim Marathon wydaje się spełniać tę samą rolę co Kubernetes. Gdzieś chyba przeczytałem mogą one stać się częścią tego samego wysiłku, ale mogę się mylić - tak naprawdę chodzi o strategiczny kierunek mezosfery i odpowiednie przyjęcie zasad Kubernetes.

W keynote DockerCon Solomon Hykes zasugerował, że Swarm będzie warstwą, która może zapewnić wspólny interfejs dla wielu struktur orkiestracji i harmonogramowania. Z tego, co widzę, Swarm został zaprojektowany, aby zapewnić płynny przepływ pracy przy wdrażaniu Dockera, współpracując z istniejącym kontenerem ramy przepływu pracy, takie jak Deis, ale wystarczająco elastyczne, aby poddać się" ciężkiemu " wdrożeniu i zarządzaniu zasobami, takimi jak Meso.

Mam nadzieję, że to pomoże - to może być ogromny post. Myślę, że kluczowe jest to, że są to Młode, rozwijające się usługi, które prawdopodobnie połączą się i staną się interoperacyjne, ale musimy przejechać przez następne 12 miesięcy, aby zobaczyć, jak to się rozegra. Jest kilku bardzo mądrych ludzi w tym problemie, więc przyszłość wygląda bardzo jasno.

 29
Author: MikeB,
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-20 09:37:45

O ile to Rozumiem:

Mezos, Kubernetes i flota próbują rozwiązać bardzo podobny problem. Chodzi o to, że odciągasz cały sprzęt od programistów, a "narzędzie do zarządzania klastrami" sortuje to wszystko za Ciebie. Następnie wystarczy dać kontener do klastra, podać mu pewne informacje (utrzymać go na stałe, skalować w górę, jeśli X się stanie itp.), a Menedżer klastra to zrobi.

Z Mesos, to robi wszystko Zarządzanie klastrem dla Ciebie, ale nie zawiera harmonogramu. Scheduler jest bit, który mówi, ok ten proces potrzebuje 2 procs i 512MB RAM, a ja mam tam maszynę z tym wolnym, więc uruchomię ją na tej maszynie. Istnieje kilka plugin schedulers dostępne dla Mezos: Marathon i Chronos i można napisać własne. Daje to dużą moc dystrybucji zasobów i skalowania klastrów itp.

Flota i Kubernetes zdają się usuwać tego rodzaju szczegóły (więc nie musisz pisać własnych scheduler). Oznacza to, że musisz zdefiniować swoje zadania i przesłać je w formacie / sposób zdefiniowanym przez flotę lub Kubernetes, a następnie przejąć i zaplanować zadania (kontenery) dla Ciebie.

Tak myślę: używanie Mezos może oznaczać nieco więcej pracy przy pisaniu własnego harmonogramu, ale potencjalnie zapewnia większą elastyczność, jeśli jest to wymagane.

Myślę, że idea uruchamiania Kubernetes na Mezos polega na tym, że Kubernetes działa jako scheduler dla Mezos. Osobiście nie jestem pewien co korzyści to przynosi prowadzenie jednego lub drugiego na własną rękę (mam nadzieję, że ktoś wskoczy i wyjaśni!)

Jak powiedział MikeB.. to wczesne dni ,i to wszystko do zgarnięcia (miej oko na ECS Amazon, jak również), więc istnieje wiele konkurencyjnych standardów i wiele nakładają się!

- edit-nie wspomniałem o Docker swarm, ponieważ nie mam z nim zbyt dużego doświadczenia.

 20
Author: user2851943,
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-02-25 12:47:05

Dla wszystkich przybywających do tego po 2017 flota jest przestarzała. Nie używaj go już.

Dokumentacja floty mówi, że "flota nie jest już aktywnie rozwijana ani utrzymywana przez CoreOS" i łączy się z orkiestracja kontenerów: przejście z floty do Kubernetes . Flota została usunięta z kontenera Linux ( znanego wcześniej jako CoreOS Linux ) i zastąpiona Kubernetes kubelet (agent). To zbiegło się z korporacyjnym pivotem, aby zaoferować tektoniczną (dystrybucję Kubernetes) jako ich produkt podstawowy.

 4
Author: jpweber,
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-09-06 00:52:16