Что делает Apache Mesos, чего не могут делать Kubernetes, и наоборот?
Что делает Apache Mesos, чего не могут делать Kubernetes, или наоборот?
Mesos - это двухуровневый планировщик. Конечно, он получает информацию о ресурсах с каждой машины и передает ее планировщику верхнего уровня, так что фреймворки, такие как kubernetes, могут использовать для планирования контейнеров между машинами, но Kubernetes может сам планировать контейнеры между компьютерами (в этом отношении нет необходимости в Mesos). Так что же несколько вещей, которые Apache Mesos может сделать, что Kubernetes не может сделать, или наоборот?
1 ответ
И Месос, и Кубернетес являются оркестровщиками контейнеров n-го уровня. Это означает, что вы можете достичь тех же самых функций, но некоторые задачи могут быть выполнены проще (читайте лучше) на одной из них. На самом деле, вы можете запустить Kubernetes на Mesos и наоборот.
Давайте рассмотрим основные отличия, которые дают некоторую подсказку, когда вам нужно принять решение:
Архитектура
Как вы указали, Mesos - это двухуровневый планировщик, и в этом основное отличие архитектуры. Это дает вам возможность создать свой собственный планировщик (он же фреймворк) для выполнения ваших задач. Более того, вы можете иметь более одного планировщика. Все ваши планировщики соревнуются за ресурсы, которые справедливо распределены с использованием алгоритма Dominant Resources Fairness (который можно заменить пользовательским распределителем). Вы также можете назначить роли для структур и задач и назначить веса для этих ролей, чтобы расставить приоритеты для некоторых планировщиков. Роли тесно связаны с ресурсами. Вышеперечисленные функции дают вам возможность создать свой собственный способ планирования для различных приложений (например, Fenzo) с различной эвристикой, основанной на типе задач, которые вы хотите запустить. Например, при запуске пакетных задач хорошо размещать их рядом с данными, и время для запуска не так важно. С другой стороны, запуск служб без сохранения состояния не зависит от узлов, и более важно запускать их как можно скорее.
Архитектура Kubernetes - это одноуровневый планировщик, но все там подключаемо и построено с многоуровневым дизайном.
происхождения
Месос был создан в Твиттере (ранее в Беркли, но первое использование производства было в Твиттере), чтобы поддержать их масштаб.
В марте 2010 года, примерно через год в проекте Mesos, Хиндман и его коллеги из Беркли выступили с речью в Twitter. Сначала он был разочарован. Только около восьми человек пришли. Но затем главный ученый в Твиттере сказал ему, что восемь человек - много, около десяти процентов всего персонала компании. А потом, после разговора, трое из этих людей подошли к нему.
Вскоре Хиндман консультировался в Твиттере, работая рука об руку с этими бывшими инженерами Google и другими над расширением проекта. Затем он присоединился к компании в качестве стажера. И через год после этого он записался как штатный сотрудник. источник
Kubernetes был создан Google для привлечения пользователей в их облако, не требуя никакой блокировки. Это та же самая техника, которую Amazon использовал с Kindle. Вы можете прочитать любую книгу на нем, но использование ее с Amazon дает вам лучший опыт. То же самое относится и к Google. Вы можете запускать Kubernetes в любом облаке (публичном или частном), но лучшие инструменты, интеграция и поддержка вы получите только в Google Cloud.
Но Google и Microsoft разные. Microsoft хочет поддерживать все на Azure, в то время как Google хочет, чтобы Kubernetes везде. (В некотором смысле, Microsoft соответствует названию Borg, ассимилируя всех оркестраторов, а не Google.) И буквально Kubernetes - это то, как Google подыгрывает локальной облачной толпе, отдавая ей отличие от AWS (который выиграл не продают свою инфраструктуру в виде стека с лицензией, хотя в нем говорится, что VMware является партнером по частному облаку) и Microsoft (у которой до сих пор нет частного облака Azure Stack). источник
сообщество
Сообщество мезос гораздо меньше, чем Кубернетес. Это факт. Kubernetes получает финансовую поддержку от многих крупных компаний, включая Google, Intel, Mirantis, RedHat и других, в то время как Mesos разрабатывается главным образом Mesosphere при некоторой поддержке Apple, Microsoft. Хотя Mesos является зрелым проектом, его разработка идет медленно, но стабильно. С другой стороны, Kubernetes намного моложе, но быстро развивается.
Сообщество Kubernetes - Ян Льюис, Адвокат Разработчик, Google
Масштаб
Месос был нацелен на крупных клиентов с самого начала. Он используется в Twitter, Apple, Verizon, Yelp, Netflix для запуска сотен тысяч контейнеров на тысячах серверов.
Kubernetes был создан Google для предоставления разработчикам опыта инфраструктуры Google ( GIFFE). С самого начала он был подготовлен для небольших масштабов до сотен машин. Это ограничение увеличивается с каждым выпуском, но они начинали с малого, чтобы расти. Публичных данных о самой большой инсталляции Kubernetes нет.
обман
Из-за проблем с масштабированием, Kuberntetes стали популярны среди небольших компаний (не облачных), в то время как Mesos был ориентирован на корпоративных пользователей. Kubernetes поддерживается Cloud Native Foundation, а Mesos - это Apache Foundation Project. Эти два фонда имеют разных учредителей и спонсоров. Как правило, больше денег дает вам лучший маркетинг, и Kubernetes определенно сделал это правильно.
Заключение
Похоже, что Кубернетес уже выиграл войну с оркестром контейнеров. Но если у вас есть нестандартные рабочие нагрузки и действительно большие масштабы, Mesos может быть хорошим выбором.
Основное различие заключается в размере сообщества и модели с открытым исходным кодом: там, где DCOS поддерживается Mesosphere и предоставляет корпоративные функции только в коммерческом продукте (поскольку мезосфера не является филантропом), у K8S есть более обширное сообщество с большим вкладом различных компаний, в результате чего в предоставлении гораздо более интегрированных корпоративных функций (многопользовательская, RBAC, квота, вытеснение, шлюзы...), что означает, что их проще использовать, а вовсе не обязательно, что они не существуют в DCOS. Я бы сказал, что:
- DCOS более полно тестируется для рабочих нагрузок с большими объемами данных и данными, но не имеет интеграции с другими периметрическими компонентами, включая централизованный мониторинг и ведение журнала "включай и работай", а также корпоративные функции, такие как модель безопасности, многопользовательские режимы, автообновления... Это был очень сложный способ интеграции все для платформы производственного класса.
- K8S более полно протестирован для приложений без сохранения состояния и предоставляет множество инструментов plug-and-play, таких как prometheus, EFK, helm..., которые значительно упрощают внедрение платформы промышленного уровня. Наряду с этим наблюдается значительный рост рабочих нагрузок с сохранением состояния с помощью наборов состояний и шаблона оператора, сравнимого с мезо-фреймворками, но опять же, K8S предоставляет множество инструментов для их разработки с меньшими затратами, поскольку множество функций предоставляется прямо из коробки, для этого требуется Мне понадобилось 2 месяца, чтобы разработать оператора MongoDB для предоставления MongoDB в качестве услуги мультитенантным и безопасным способом, и мне нужно было одновременно изучать Голанг.
- https://www.infoworld.com/article/3118345/cloud-computing/why-kubernetes-is-winning-the-container-war.html
- https://www.theregister.co.uk/2017/10/17/docker_ee_kubernetes_support
- https://www.techrepublic.com/article/these-two-vendors-are-most-likely-to-bring-kubernetes-containers-to-the-enterprise
- https://www.cloudhealthtech.com/blog/container-wars-are-over-kubernetes-has-won
- https://news.ycombinator.com/item?id=12462261