Альтернативы Kubernetes: взгляд на Swarm, Marathon, Nomad и Kontena

Опубликовано: 17 Апреля, 2023
Альтернативы Kubernetes: взгляд на Swarm, Marathon, Nomad и Kontena

Мы все, вероятно, слышали достаточно о том, что Kubernetes — это облачный Linux с самой высокой скоростью внедрения и т. д. Но Kubernetes ни в коем случае не является единственным вариантом оркестровки, и существует немало альтернатив Kubernetes. Kubernetes, Docker Swarm, Mesos, Nomad (и некоторые другие) относятся к классу инструментов управления инфраструктурой DevOps, известных как механизмы оркестрации контейнеров (COE). Эти «оркестраторы» дают нам столь необходимый уровень абстракции между контейнерами приложений, которые работают на наших ресурсах, и самими фактическими пулами ресурсов.

Работа с контейнерами в облаке заключается в эффективном распределении ресурсов. Все усложняется, когда вы используете несколько облаков вместе с локальным центром обработки данных и развертываете в них множество приложений. Тем более, что эти приложения могут быть чем-то простым, например, небольшой реляционной базой данных, или чем-то более продвинутым, например, сервис потокового видео в реальном времени.

Основы оркестровки

Хотя все альтернативы Kubernetes могут различаться в зависимости от того, насколько они просты или сложны в использовании и какие функции они поддерживают, есть некоторые основы, которые все они охватывают достаточно хорошо. Хорошим примером может служить обнаружение служб, которое используется для определения расположения различных служб в сети в архитектуре распределенных вычислений. Другим хорошим примером являются запросы балансировки нагрузки, генерируемые внутри кластера или извне от внешних клиентов.

Это всего лишь несколько примеров основных задач, выполняемых механизмом оркестрации высокого уровня, и список довольно бесконечен, включая такие вещи, как планирование контейнеров, проверки работоспособности и управление хранилищем. Также было бы неплохо отметить сейчас, что эти оркестраторы развиваются так быстро, что то, что мы знаем о них сегодня, через несколько месяцев может сильно устареть. Кроме того, каждый месяц появляются новые крупные обновления от Kubernetes, Mesos и Swarm, и они не единственные.

Альтернативы Kubernetes: Docker Swarm

Изображение 14540 Вы не можете думать об альтернативах Kubernetes и не думать о Swarm и Docker Engine v1.12.0 и более поздних версиях, которые позволяют развертывать контейнеры в режиме Swarm. Как и Kubernetes, кластер Swarm состоит из Docker Engine, развернутого на нескольких узлах, где узлы-менеджеры выполняют оркестровку и управление кластером.

Одна из основных проблем, с которыми люди сталкиваются при работе с Kubernetes, заключается в том, что его довольно сложно использовать, особенно потому, что он использует разные настройки для каждой ОС. Добавьте к этому тот факт, что некоторое ручное вмешательство требуется чаще, чем нет, и удобный вариант, такой как Swarm, внезапно кажется желанным. Преимущество Swarm здесь в том, что он использует интерфейс командной строки Docker для запуска всех сервисов, поэтому с Swarm вам нужно изучить только один набор инструментов.

Стива Сингха, генерального директора Docker, в интервью прямо спросили, что он думает о быстром внедрении Kubernetes, и он ответил, что не беспокоится. Вероятно, это связано с тем, что если вы крупная корпорация, использование Swarm будет намного дешевле, чем обучение тысяч сотрудников работе с Kubernetes. В Docker почти нет никаких настроек, кроме выбора бета-версии Swarm, что резко контрастирует с тем, как Kubernetes требует от вас наметить свои кластеры еще до того, как вы начнете.

Апачский марафон

Еще одно имя, которое мы часто слышим в наши дни, — это Apache Marathon, и если вы думаете, что такое Marathon? По сути, это оркестратор для Mesos. Подождите, разве Месос не оркестратор? Что ж, Mesos на самом деле является масштабируемым менеджером ресурсов. Mesosphere — это программное решение, которое расширяет возможности управления кластерами Apache Mesos с помощью дополнительных компонентов, таких как Marathon и Chronos. Mesos может перераспределять рабочие нагрузки таким образом, что неиспользуемые узлы отключаются, когда они не используются, и в то же время может обеспечивать совместное использование ресурсов. Это также делает большую отказоустойчивость в случае отказа одного из ваших узлов.

Mesos поставляется с рядом фреймворков, которые используют его возможности совместного использования ресурсов, и Marathon является одним из таких фреймворков с отличной возможностью запуска других приложений и фреймворков. Вот почему Marathon так часто используется в качестве платформы для оркестрации контейнеров с Mesos. Кроме того, Marathon может обеспечивать как масштабирование, так и самовосстановление для контейнерных рабочих нагрузок, масштабирование подтверждено и работает во многих производственных средах.

Кочевник

В отличие от обширных возможностей Kubernetes 1.7, Nomad разработан с очень спартанской философией, заключающейся в небольшом объеме кода при кодировании. В то время как Kubernetes разработан как набор взаимодействующих сервисов, Nomad архитектурно намного проще. Nomad представляет собой единый двоичный файл как на стороне клиента, так и на стороне сервера и не требует внешних ресурсов или управления. Думайте о Nomad как об одной из тех урезанных контейнерных операционных систем с самым минимальным набором функций, включая облегченный менеджер ресурсов и сложный планировщик.

Если вы ищете хорошо распределенное, высокодоступное и простое в эксплуатации решение для оркестровки, которое поддерживает виртуализированные, контейнерные и автономные приложения (включая Docker), Nomad — действительно неплохой выбор. Кроме того, Nomad поддерживает конфигурации с несколькими центрами обработки данных и несколькими регионами и был протестирован на кластерах до 5000 узлов (столько же, сколько Kubernetes). Считается, что Nomad будет работать и с гораздо большими кластерами.

Контейнер

Еще одна из наших альтернатив Kubernetes, и при этом интересная, исходит от финской компании Kontena, которая, как и Swarm, была разработана для преодоления длительного времени или крутой кривой обучения, необходимых для производственных проектов Kubernetes. Требование отдельного сервера аутентификации и тот факт, что он написан на Ruby, выделяют его из толпы. Кроме того, детализированные параметры контроля доступа и хороший журнал аудита делают его особенно привлекательным для корпоративных сред.

Kontena может быть установлена в любой облачной инфраструктуре, работающей под управлением Linux, либо на виртуальной машине, либо на «голом железе», либо даже в любом общедоступном, частном облаке или гибридном сочетании. Как и Kubernetes, Kontena работает на более высоком уровне абстракции, чем контейнеры, где строительные компоненты Kontena называются сервисами. Сетка — это самый внешний контейнер системы Kontena. Kontena также использует расширенные оверлейные сети, такие как Weave и OpenVPN, для обеспечения межсервисной связи.

Отказ от посредников

Теперь, хотя Kubernetes — это больше, чем просто планировщик, он включает в себя обнаружение сервисов и богатый набор API-интерфейсов, неопытные пользователи должны быть готовы много работать в Google, прежде чем они смогут создавать собственные среды. Настройка Kubernetes также требует тщательного планирования, поскольку, как упоминалось ранее, узлы необходимо определить еще до того, как вы начнете. Вероятно, поэтому целая индустрия объединилась для предоставления управляемых сервисов Kubernetes. Это потому, что Kubernetes — невероятно мощный инструмент, который довольно сложно использовать.

Эта отрасль быстро становится известной как Kubernetes как услуга, и она включает в себя множество вариантов от CoreOS, Platform9, Microsoft и многих других. Альтернативы Kubernetes, однако, исключают посредников и предоставляют механизм оркестрации, который намного проще в использовании. Крупным корпорациям будет намного проще использовать Swarm, чем переходить в облако с помощью Kubernetes, особенно если в переходе участвует много людей. Небольшие команды предпочтут более легкие решения, такие как Nomad, потому что они намного проще и хорошо интегрируются с существующими службами Consul и Vault.

Как и все остальное на предприятии, смысл в том, чтобы иметь возможность выбирать то, что лучше всего подходит вам, и, что более важно, иметь выбор в первую очередь. Нельзя отрицать абсолютное доминирование Kubernetes и тот факт, что это отличный выбор для инструмента оркестрации контейнеров. Но это не единственный вариант, поэтому не игнорируйте эти альтернативы Kubernetes.