Яка різниця між Meso Apache і Kubernetes від Google


385

У чому саме різниця між Mesos Apache і Kubernetes від Google? Я розумію, що це програмне забезпечення для управління кластерними серверами. Чи може хто-небудь уточнити, де основні відмінності - коли, яку рамку слід віддати перевагу?

Чому ви хочете використовувати Kubernetes на вершині мезосфери ?

Відповіді:


515

Kubernetes - це проект з відкритим кодом, який приносить можливості управління кластером «стиль Google» у світ віртуальних машин або сценарії «на металі». Він дуже добре працює з сучасними операційними системами (наприклад, CoreOS або Red Hat Atomic), які пропонують легкі обчислювальні «вузли», якими керує для вас. Він написаний на Golang і є легким, модульним, портативним та розширюваним. Ми (команда Kubernetes) співпрацюємо з низкою різних технологічних компаній (включаючи Mesosphere, які куратують проект з відкритим кодом Mesos), щоб створити Kubernetes як стандартний спосіб взаємодії з обчислювальними кластерами. Ідея полягає в тому, щоб відтворити ті зразки, які ми бачимо людям, які потребують створення кластерних програм на основі нашого досвіду роботи в Google. Деякі з цих понять включають:

  • стручки - спосіб групувати контейнери разом
  • контролери реплікації - спосіб обробки життєвого циклу контейнерів
  • мітки - спосіб пошуку та запиту контейнерів та
  • послуги - набір контейнерів, що виконують загальну функцію.

Таким чином, лише з Kubernetes у вас буде щось просте, легке в роботі, портативне та розширювальне, що додає кластер як іменник до речей, якими ви керуєте найлегшим способом ваги. Запустіть програму на кластері та перестаньте турбуватися про окрему машину. У цьому випадку кластер є гнучким ресурсом, як і VM. Це логічна обчислювальна одиниця. Розгорніть його, використовуйте, змініть розмір, швидко та легко зменшіть його.

У Mesos спостерігається досить велика кількість перекриттів з точки зору основного бачення, але продукти знаходяться в зовсім інших точках свого життєвого циклу і мають різні солодкі плями. Mesos - це ядро ​​розподіленої системи, яке зшиває багато різних машин у логічний комп'ютер. Він народився для світу, де ви володієте великою кількістю фізичних ресурсів, щоб створити великий статичний обчислювальний кластер. Чудова річ у тому, що багато сучасних програм для масштабованої обробки даних добре працюють на Mesos (Hadoop, Kafka, Spark), і це приємно, тому що ви можете запустити їх на одному і тому ж базовому ресурсному пулі, разом із вашими новими програмами, упакованими в контейнери. . Він дещо важчий за вагу, ніж проект Kubernetes, але його стає легше і простіше в управлінні завдяки роботі таких людей, як "Мезосфера".

Тепер цікавим є те, що в даний час Месос адаптується для додавання багатьох концепцій Kubernetes та підтримки API Kubernetes. Таким чином, це буде шлюзом до отримання більше можливостей для вашої програми Kubernetes (майстер високої доступності, більш досконала семантика планування, можливість масштабування до дуже великої кількості вузлів), якщо вони вам потрібні, і він добре підходить для запуску виробничих навантажень (Kubernetes все ще знаходиться в альфа-стані).

На запитання я схиляюсь сказати:

  1. Kubernetes - прекрасне місце для початку, якщо ви не новачок у світі кластеризації; це найшвидший, найпростіший і легкий спосіб вибити шини і почати експерименти з розробкою, орієнтованою на кластер. Він пропонує дуже високий рівень переносимості, оскільки його підтримують багато різних постачальників (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare тощо).

  2. Якщо у вас є наявні навантаження (Hadoop, Spark, Kafka тощо), Mesos дає вам рамку, яка дозволить вам переплутати ці робочі навантаження між собою та змішати деякі нові речі, включаючи додатки Kubernetes.

  3. Mesos дає випускний клапан, якщо вам потрібні можливості, які ще не реалізовані громадою в рамках Kubernetes.


4
Чудовий огляд. Дві короткі думки: 1) Я вважаю, що Kubernetes зараз бета-версія, а не альфа? 2) Додайте інформацію про Марафон?
knite

57
Підводячи підсумок (для швидкого читання - я сподіваюся, що я це правильно зрозумів): kubernetes - це менеджер кластерів для контейнерів (тільки?), А mesos - це ядро ​​розподіленої системи, яке зробить ваш кластер схожим на одну гігантську комп'ютерну систему для всіх підтримуваних кадрів і додатки, створені для запуску на мезосах. І все ж кубернети - це одна (серед інших) рамка, яку можна запускати на месо. Таким чином, поєднуючи обидва, ви закінчуєте кластер, який не є кластером, і менеджер кластерів, який не має кластеру для управління. Чудовий новий світ :-) (J / K є багато переваг, які ви отримуєте від цього, оскільки kub. Більше, ніж clst. Phys. Res.)
masi

7
Ось Мезосфера говорила саме про це на заході Kubernetes 1.0 Launch: youtube.com/… - відмова від відповідальності: це я.
Повітря

68

Обидва проекти мають на меті полегшити розгортання та управління додатками всередині контейнерів у вашому центрі обробки даних або у хмарі.

Для розгортання додатків на версії Mesos можна використовувати Marathon або Kubernetes для Mesos.

Marathon - це система init та управління для кластера для запуску служб Linux у групах та контейнерах Docker. Марафон має низку різних функцій розгортання канарів і є дуже зрілим проектом.

Марафон проходить поверх Месоса, який є надзвичайно масштабованим, тестованим на бій та гнучким менеджером ресурсів. Досліджено масштаб марафону та проходить у багатьох виробничих середовищах.

Технологічний стек Mesos і Mesosphere забезпечує хмарне середовище для запуску існуючих робочих навантажень Linux, але також забезпечує рідне середовище для побудови нових розподілених систем.

Mesos - це розподілене системне ядро ​​з повним API для програмування безпосередньо проти центру обробки даних. Він резюмує обладнання, що лежить в основі (наприклад, голий метал або VM), і просто розкриває ресурси. Він містить примітиви для написання розподілених додатків (наприклад, Spark спочатку був додатком Mesos, Chronos тощо), наприклад передача повідомлень, виконання завдань тощо. Таким чином, стають можливими абсолютно нові програми. Apache Spark - один із прикладів нової (в жаргоні Mesos під назвою) рамки, яка була спочатку побудована для Mesos. Це дало можливість дуже швидко розвиватися - розробникам Spark не довелося переживати за мережу для розподілу завдань серед вузлів, оскільки це основний примітив у Mesos.

Наскільки мені відомо, Kubernetes сьогодні не використовується всередині Google у виробничих розгортаннях. Для виробництва Google використовує Omega / Borg, що набагато більше схоже на модель Mesos / Marathon. Однак чудова річ у використанні Месоса в якості основи - це те, що і Кубернетес, і Марафон можуть бігати поверх нього.

Більше ресурсів про Марафон:

https://mesosphere.github.io/marathon/

Відео: https://www.youtube.com/watch?v=hZNGST2vIds


37

Kubernetes та Mesos - це сірник, зроблений на небі. Kubernetes дозволяє абстрагувати Pod (групу розміщених контейнерів) разом з мітками Pod для виявлення сервісу, балансування навантаження та контролю реплікації. Mesos забезпечує дрібнозернисту розподіл ресурсів для стручків через вузли кластеру, і може змусити Kubernetes грати чудово з іншими структурами, що працюють на тих же ресурсах кластера.

з readme кубернетів-мезосів


18

Mesos і Kubernetes можуть бути використані як для керування кластером машин, так і для вилучення обладнання.

Mesos, за задумом, не надає вам планувальника (щоб вирішити, де і коли запускати процеси та що робити, якщо процес не вдасться), ви можете використовувати щось на зразок Marathon або Chronos, або написати свій власний.

Kubernetes зробить планування для вас поза коробкою, і його можна використовувати як планувальник Mesos (будь ласка, виправте мене, якщо я тут помиляюся!), Де ви можете використовувати їх разом. У Mesos може бути кілька планувальників, які діляться одним кластером, тому теоретично ви можете запускати кубернети та хроноси разом на одному і тому ж апаратному забезпеченні.

Супер спрощено: якщо ви хочете контролювати те, як плануються ваші контейнери, перейдіть за Mesos, інакше Kubernetes покерує.


1
Ця відповідь є неточною та заплутаною. Немає простого способу запустити Mesos на Kubernetes - і насправді це було б інверсією архітектури. Оскільки Kubernetes є менш загальним у фокусі, ніж Mesos, має сенс запустити його поверх Mesos.
ssk2

1
Так, я мав на увазі, що кубернети працюють над Mesos. Kubernetes надає логіку планування для мезо-рамки, а mesos опікується виконанням роботи тощо. Вибачте, якщо це не було зрозуміло.
користувач2851943

2
@air Мені цікаво дізнатись, як ви тут визначили планувальник? Месос, здається, не забезпечує жодної логіки планування? Це все вирішується в Chronos / Marathon / тощо? (можливо, я щось пропустив! :))
користувач2851943

6
Я думаю, що я бачу, на що ви потрапляєте - Mesos - це рамка, яка дозволяє підключати планувальників. Мене збентежило формулювання, яке передбачає, що Месос пропустив щось важливе ("Mesos не забезпечує вас"), коли це дизайн. Я вилучив свій потік.
Повітря

5
Ця відповідь точна. Mesos зосереджується на управлінні ресурсами, і він знімає планування, дозволяючи підключати рамки. Хороший приклад - те, що Netflix зробив, написавши рамки планування: Fenzo techblog.netflix.com/2015/08/…
Camilo Crespo

5

Мені подобається це коротке відео тут мезосистем навчального матеріалу

з голими металевими кластерами вам знадобиться нерестувати стеки, такі як HDFS, SPARK, MR тощо ... тому якщо ви запускаєте завдання, пов’язані з цим, використовуючи лише керування голими металевими кластерами, настане багато холодного часу початку.

за допомогою mesos ви можете встановити ці сервіси поверх голих металів, і ви зможете уникнути часу підключення цих базових служб. Це щось мезо добре справляється. і може бути використаний кубернетами, розташованими поверх нього.


3

"Я розумію, що обидва є програмним забезпеченням управління кластерними серверами."

Це твердження не зовсім вірно. Kubernetes не керує серверними кластерами, він організовує контейнери таким чином, щоб вони працювали разом з мінімальними клопотами та експозицією. Kubernetes дозволяє визначати частини вашої програми як "стручки" (один або кілька контейнерів), які доставляються "розгортанням" або "наборами демонів" (та кількома іншими) та піддаються впливу зовнішнього світу за допомогою сервісів. Однак Kubernetes не керує самим кластером (є інструменти, які можуть надавати, конфігурувати та масштабувати кластери для вас, але вони не є частиною самого Kubernetes).

Mesos з іншого боку наближається до "управління кластерами", оскільки він може контролювати те, що працює де, але не тільки з точки зору планування контейнерів. Mesos також управляє автономним програмним забезпеченням, що працює на кластерних серверах. Незважаючи на те, що він в основному використовується як альтернатива Kubernetes, Mesos може легко працювати з Kubernetes, оскільки в той час як функціональність перекривається в багатьох областях, Mesos може зробити більше (але на частинах, що перекриваються, Kubernetes, як правило, краще).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.