Куб против докера: сравнение систем контейнеризации

6 Ноября 2018

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

Kubernetes — OpenSource программное обеспечение для автоматизации развертывания, масштабирования и управления контейнеризированными приложениями, разработанное Google. Хотя Kubernetes и предоставляет очень мощный и масштабируемый инструмент, он является сложной, а иногда очень сложной системы.

kubernetes-logo.png

Контейнеризация Docker — гибкая и простая система, позволяющая упаковать приложение со всем его окружением и зависимостями в контейнер, который может быть перенесен на любую Linux-систему. Docker контейнер более удобен в использовании, что и следует ожидать от продукта, ориентированного на потребителя. Существует две версии докера — бесплатная (community) и Enterprise, у которой есть свои преимущества. Сейчас мы не будем останавливаться на возможностях Enterprise-версии, если интересно, всегда можно прочитать вот эту статью.

2000px-Docker_(container_engine)_logo.svg.png

Стремительный рост средств контейнеризации в 2016–2018 годах привел к распространению платформ, обеспечивающих масштабируемость, гибкость и безопасность. В июле 2018 года Google выпустила свою платформу Google Services Platform, чтобы конкурировать с аналогичными продуктами от RedHat, AWS, VMware и Docker. Эти платформы являются моделями PaaS (Platform as a Service), которые в последнее время стали называть также моделями CaaS (Container as a Service). Они предоставляют доступ к контейнерными сервисами компаниям, которые хотят получить масштабируемую разработку посредством контейнеров, не создавая с нуля всю инфраструктуру.

Сравнение Kуба с Докером, на самом деле сводится к сравнению Куба с продуктом Docker Swarm. У новых подписчиков Докера есть непосредственный доступ к функциям Swarm, а в старых Swarm придется включать вручную.

Установка и настройка

Чаще всего пользователи Куба жалуются на то, что он использует отдельную установку для каждой ОС. Можно использовать онлайн-ресурсы Куба, помогающие настроить рабочее пространство, но морально приготовься к тому, что придется много гуглить, чтобы построить кастомную среду, которая существенно отличается от стандартной реализации. Развертывание Куба требует тщательного планирования, так как нужно определить свои узлы перед запуском. Добавь сюда ручную интеграцию и установка Куба покажется неподъемной задачей.

Docker Swarm гораздо проще: тебе нужно изучить всего один набор инструментов для создания и настройки среды — Docker CLI (Command Line Interface). Поскольку Swarm работает в твоем текущем докере, он практически не нуждается в настройке. Используя Swarm, ты можешь создавать свои контейнеры по мере возникновения в них необходимости, в отличие от Куба, где ты должен определить свои кластеры заранее.

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Логгинг и мониторинг

Куб поддерживает несколько средств журналирования и мониторинга:

  1. Elasticsearch/Kibana (ELK) — логгинг внутри контейнера.
  2. Heapster/Grafana/Influx — мониторинг внутри контейнера.
  3. Sysdig — облачная интеграция

Докер контейнер поддерживает только сторонние приложения для мониторинга. Разработчики Докера рекомендуют использование Reimann, но поскольку API открыт, уже доступно много других приложений.

Размер имеет значение?

Раньше размер и количество контейнеров был решающим фактор в выборе между Кубом и Докером. Но последнее обновление Докера значительно сократило разрыв. Обе системы поддерживают кластеры, состоящие из 1000 узлов и 30 000 контейнеров.

Так что же выбрать? Если выберешь Куб, то после мучений с развертыванием, сможешь похвастаться, что 99% вызовов API отвечают в течение одной секунды. С другой стороны, Докер гораздо проще в настройке.

В марте 2016 года Докер сообщил о независимом тесте Куба и Докера. В результате теста было обнаружено, что при одинаковом количестве контейнеров Докер в 5 раз быстрее, чем Куб. А все это из-за сложности самого Куба. Да, он большой и нерасторопный.

swarmfaster.jpg

Докер — быстрее в 5 раз

Заключение

Выбор между Кубом и Докером — непростая задача. В заключение приведем табличку с преимуществами и недостатками каждого решения. Надеюсь, она поможет сделать правильный выбор.

  Kubernetes Docker
Преимущества Бесплатный и очень мощный инструмент
Отказоустойчивость на высоте
Простота
Скорость освоения
Производительность
Недостатки Сложен в освоении
В 5 раз медленнее, чем Докер
Узкий функционал
Не такой отказоустойчивый, как Куб

Получить консультацию специалиста