Kubernetes - это проект с открытым исходным кодом, который привносит возможности управления кластерами в стиле Google в мир виртуальных машин или в сценарии «на металле». Он очень хорошо работает с современными средами операционных систем (такими как CoreOS или Red Hat Atomic), которые предлагают облегченные вычислительные «узлы», которые управляются для вас. Он написан на Golang и является легким, модульным, портативным и расширяемым. Мы (команда Kubernetes) работаем с рядом различных технологических компаний (включая Mesosphere, которая курирует проект с открытым исходным кодом Mesos), чтобы установить Kubernetes в качестве стандартного способа взаимодействия с вычислительными кластерами. Идея состоит в том, чтобы воспроизвести шаблоны, которые, как мы видим, нужны людям для создания кластерных приложений, основываясь на нашем опыте работы в Google. Некоторые из этих концепций включают в себя:
- стручки - способ группировки контейнеров
- контроллеры репликации - способ управления жизненным циклом контейнеров
- метки - способ поиска и запроса контейнеров, и
- услуги - набор контейнеров, выполняющих общую функцию.
Таким образом, с одним только Kubernetes у вас будет что-то простое, легко настраиваемое, переносимое и расширяемое, которое добавляет «кластер» в качестве существительного к вещам, которыми вы управляете, самым легким способом. Запустите приложение в кластере и перестаньте беспокоиться об отдельном компьютере. В этом случае кластер является гибким ресурсом, как и виртуальная машина. Это логическая вычислительная единица. Включите его, используйте его, измените его размер, выключите его быстро и легко.
С Мезосом существует довольно много совпадений с точки зрения основного видения, но продукты находятся на совершенно разных этапах своего жизненного цикла и имеют разные приятные места. Mesos - это ядро распределенных систем, которое объединяет множество разных машин в логический компьютер. Он был рожден для мира, где у вас много физических ресурсов для создания большого статического вычислительного кластера. Самое замечательное в этом то, что многие современные масштабируемые приложения для обработки данных хорошо работают на Mesos (Hadoop, Kafka, Spark), и это приятно, потому что вы можете запускать их все в одном базовом пуле ресурсов вместе с вашими пакетными приложениями нового поколения. , Он несколько тяжелее, чем проект Kubernetes, но его становится все легче и легче благодаря работе таких людей, как Mesosphere.
Что действительно интересно, так это то, что Mesos в настоящее время адаптируется для добавления многих концепций Kubernetes и поддержки API Kubernetes. Таким образом, он станет шлюзом для получения дополнительных возможностей для вашего приложения Kubernetes (мастер высокой доступности, более сложная семантика планирования, возможность масштабирования до очень большого количества узлов), если они вам понадобятся, и хорошо подходит для выполнения производственных рабочих нагрузок (Kubernetes). все еще находится в альфа-состоянии).
Когда меня спрашивают, я склонен говорить:
Kubernetes - отличное место для старта, если вы новичок в мире кластеризации; это самый быстрый, простой и легкий способ запустить шины и начать экспериментировать с кластерно-ориентированной разработкой. Он предлагает очень высокий уровень мобильности, поскольку поддерживается многими различными провайдерами (Microsoft, IBM, Red Hat, CoreO, MesoSphere, VMWare и т. Д.).
Если у вас есть существующие рабочие нагрузки (Hadoop, Spark, Kafka и т. Д.), Mesos предоставит вам среду, которая позволит вам чередовать эти рабочие нагрузки друг с другом и смешивать некоторые новые элементы, включая приложения Kubernetes.
Mesos дает вам запасной клапан, если вам нужны возможности, которые еще не реализованы сообществом в рамках Kubernetes.