ћерион Ќетворкс

9 минут

Kubernetes и Red Hat OpenShift сегодн€ €вл€ютс€ двум€ ведущими инструментами оркестрации контейнеров на рынке. ¬ этой статье мы обсудим эти инструменты и различи€ между ними.

OpenShift vs Kubernets

Ѕольшинство производственных сред начали использовать контейнеры, поскольку они легко масштабируемы, экономичны, лучше, чем виртуальные машины, и быстрее развертываютс€.  онечно, проще работать с 10-20 контейнерами, но представьте, если ваша производственна€ среда кластера Kubernetes имеет сотни контейнеров. ”правление жизненным циклом контейнера с параллельным запуском нескольких контейнеров становитс€ сложной задачей. ѕоэтому дл€ управлени€ всем автоматизированным развертыванием, масштабированием, организацией и управлением контейнерами необходима платформа/инструмент дл€ управлени€ контейнерами.

—равнение Kubernetes с OpenShift было бы несправедливым, поскольку эти инструменты оркестровки контейнеров представл€ют собой два разных проекта. Kubernetes - проект с открытым исходным кодом, в то врем€ как OpenShift - продукт предлагаемый Red Hat. —равнивать Kubernetes с OpenShift - все равно что сравнивать двигатель автомобил€ с автомобилем. Ёто св€зано с тем, что сам Kubernetes €вл€етс€ основной частью общей архитектуры OpenShift.

—начала кратко разберемс€, что такое Kubernetes и OpenShift.


„то такое Kubernetes?

¬ насто€щее врем€ Kubernetes €вл€етс€ наиболее попул€рным инструментом оркестровки контейнеров с открытым исходным кодом и широко используетс€ дл€ автоматического развертывани€ и масштабировани€ контейнеров. Ётот инструмент с открытым исходным кодом был создан в 2014 году компанией Google и разработан облачным вычислительным фондом с использованием €зыка программировани€ Go.

Kubernetes имеет архитектуру master-slave, в кластере Kubernetes есть главный узел и множество рабочих узлов. ¬нутри каждого рабочего узла будет работать несколько деталей, которые представл€ют собой не что иное, как группу контейнеров, объединенных как рабоча€ единица. Kubernetes использует YAML дл€ определени€ ресурсов, отправл€емых на сервер API дл€ создани€ самого приложени€.

ѕреимущества Kubernetes

  • ѕоскольку Kubernetes имеет открытый исходный код, он может свободно использоватьс€ дл€ любой платформы
  • »меет огромное активное сообщество разработчиков и инженеров, что помогает непрерывно разрабатывать новые функции
  • ƒл€ избегани€ простоев вы можете легко выполнить откат или новое развертывание
  • ƒл€ распределени€ сетевого трафика он предлагает возможности балансировки нагрузки
  • ќн поддерживает различные €зыки и структуры программировани€, что обеспечивает гибкость дл€ разработчиков и администраторов
  • Kubernetes помогает очень эффективно использовать ресурсы инфраструктуры и сокращать общие затраты
  • ќна поставл€етс€ с панелью мониторинга по умолчанию, котора€ предлагает кучу информации, достаточной, чтобы следить за состо€нием кластера.

Red Hat OpenShift

OpenShift - контейнерна€ платформа корпоративного уровн€, разработанна€ Red Hat. Ќаписан на €зыках программировани€ Go и AngularJS, а первоначальный релиз вышел в 2011 году. Red Hat OpenShift можно использовать как дл€ облачных, так и дл€ традиционных приложений.

«а кулисами Red Hat OpenShift работает Kubernetes, что позвол€ет запускать приложени€ внутри контейнеров. OpenShift поставл€етс€ с панелью веб-интерфейса и CLI, котора€ помогает разработчикам и программистам создавать свои коды приложений. Ёто также позвол€ет инженерам DevOps управл€ть и контролировать кластер Kubernetes.

ѕреимущества Red Hat OpenShift:

  • ѕоддерживает инициативу открытых контейнеров (OCI - open container initiative) дл€ размещени€ контейнеров и среды выполнени€
  • —одержит множество исправлений проблем безопасности, дефектов и производительности
  • ћожет быстро и гибко создавать и развертывать приложени€
  • Ћегко интегрировать со многими другими инструментами DevOps
  • ѕровер€ет несколько подключаемых модулей сторонних производителей дл€ каждой версии
  • »спользование унифицированной консоли на Red Hat позвол€ет быстро внедр€ть и примен€ть политики
  • ѕоддерживает Prometheus и Grafana, что помогает в мониторинге кластера
  • ≈го можно легко использовать с любым поставщиком облачных технологий или в локальной среде.

OpenShift против Kubernetes

1. ќткрытый исходный код по сравнению с коммерческим

Ќаиболее фундаментальное отличие Kubernetes от OpenShift заключаетс€ в том, что Kubernetes - проект с открытым исходным кодом, а OpenShift - коммерческий продукт корпоративного уровн€. Ёто означает, что Kubernetes €вл€етс€ самоподдерживаемым инструментом. ¬ случае, если в этом инструменте вы€влена кака€-либо проблема или ошибка, люди обращаютс€ к сообществу Kubernetes, которое состоит из многих разработчиков, администраторов, архитекторов и т. д.

¬ то врем€ как в OpenShift вы получаете хороший платный вариант поддержки дл€ устранени€ любой проблемы с этой подпиской на продукт Red Hat. ѕодписка OpenShift позвол€ет управл€ть общедоступной, частной и виртуальной инфраструктурой с помощью Red Hat CloudForms.

2. –азвертывание

–азвертывание приложени€ в производственной среде €вл€етс€ решающим этапом процесса DevOps, и OpenShift делает его очень простым. ќн автоматически выполн€ет каждый шаг от разработки до развертывани€, поэтому вам не нужно беспокоитьс€ о каждом шаге в конвейере CI/CD, чтобы сделать все вручную. ƒаже будучи новичком, вы будете чувствовать себ€ очень комфортно, использу€ OpenShift при конвеерном развертывани€ приложений. ¬ OpenShift развертывание выполн€етс€ с помощью команды DeploymentConfig.

— другой стороны, развертывание в Kubernetes сложнее и часто выполн€етс€ только экспертом. Ќеобходимо настроить каждый шаг конвейера дл€ развертывани€ приложени€ вручную. ¬ случае развертывани€ приложений в Kubernetes используютс€ объекты развертывани€ и могут обрабатывать несколько параллельных обновлений.

3. ”правление

¬ Kubernetes можно управл€ть кластером с помощью панели мониторинга по умолчанию. Ќо из-за его ограниченных возможностей и базового пользовательского интерфейса, по мере роста размера кластера, чтобы легко управл€ть кластером вам придетс€ добавить более расширенные инструменты, такие как Istio, Prometheus, Grafana.

Red Hat OpenShift предоставл€ет удобную панель управлени€ кластером. ¬еб-консоль OpenShift предоставл€ет возможности дл€ выполнени€ некоторых расширенных операций в кластере дл€ улучшени€ управлени€. OpenShift также предлагает интегрировать кластер со стеком EFK и Istio. », наконец, доступные в OpenShift плейбуки Ansible и установщик помогают плавно управл€ть кластером.

4. ћасштабируемость

Ќезависимо от того, €вл€етс€ ли кластер виртуализированным или он развернут на голом железе, в нем будет несколько виртуальных машин. ¬ Kubernetes добавление виртуальных машин занимает много времени. ќн требует от разработчиков создани€ дл€ него сценариев YAML.

“огда как в OpenShift масштабирование выполн€етс€ без особых усилий. OpenShift позвол€ет быстрее выводить виртуальные машины в кластер с помощью доступных установщиков и плейбуков Ansible.  роме того, процесс масштабировани€ в OpenShift тоже прост.

5. √ибкость

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

ѕри работе с OpenShift нельз€ использовать все операционные системы. ¬ OpenShift можно использовать только дистрибутивы Red Hat, FedoraOS и CentOS.

6. Ѕезопасность

ѕолитики безопасности в OpenShift строже по сравнению с Kubernetes. Ќапример, OpenShift не позвол€ет запускать контейнеры как корневые. Ёто также ограничивает использование пользовател€ми многих официальных образов, представленных на DockerHub. »так, во врем€ работы с OpenShift сначала нужно будет узнать о его политиках безопасности. Ќо из-за этих ограничений, возможности аутентификации и авторизации в OpenShift более надежны, чем Kubernetes.

¬ то врем€ как в Kubernetes настройка надлежащей возможности аутентификации и авторизации потребует много усилий. ¬ отличие от OpenShift, кластеры Kubernetes могут иметь много у€звимых образов, если в кластер не интегрированы средства сканировани€ контейнеров. Kubernetes предлагает функции управлени€ доступом на основе ролей (RBAC - role-based access control), но этого недостаточно дл€ расширенного уровн€ безопасности, необходимого в производственных средах. “ак, по сравнению с OpenShift, в Kubernetes ещЄ предстоит сделать много улучшений в плане безопасности.

7. ¬еб-интерфейс

ƒл€ выполнени€ всей работы по администрированию кластера необходим подход€щий и простой в использовании веб-интерфейс, что и предлагает OpenShift. ” него есть проста€ форма аутентификации дл€ каждого пользовател€. ѕосле входа пользователь получает полную визуализацию кластера, которую очень легко прочитать и пон€ть. OpenShift имеет удобную веб-консоль, котора€ позвол€ет инженерам DevOps выполн€ть задачи Kubernetes, а операционным группам - комфортно контролировать приложение. Ёлемент управлени€ имеет несколько возможностей типа построени€, развертывани€, обновлени€, масштабировани€, раскрыти€ и т.д., которые могут быть реализованы одним нажатием кнопки.

Kubernetes поставл€етс€ с базовой панелью управлени€, котора€ может помочь только с основными задачами.  роме того, панель мониторинга не очень удобна дл€ пользователей по сравнению с другими панел€ми мониторинга, доступными на рынке. »менно поэтому инженеры DevOps предпочли бы интегрировать инструментальную панель Kubernetes по умолчанию с другими инструментами визуализации, такими как Prometheus и Grafana.

ѕодвод€ итог, приведем таблицу различий между Red Hat OpenShift и Kubernetes:

ќтличи€

Kubernetes

OpenShift

–азработчик

Cloud-Native Computing Foundation

Red Hat Software

ƒата первого релиза

7 июн€ 2014

4 ма€ 2011

язык программировани€

Go

Go, Angular, JS

”правление

—ложное управлени€ контейнерами

»спользование ImageStreams дл€ упрощени€ управлени€ несколькими контейнерами

–азвертывание

ѕоддерживает все облачные и Linux платформы

ѕоддерживает только дистрибутивы на базе RedHat: CentOS и Fedora

√ибкость

— открытым исходным кодом, соответственно гибкий

ќграниченна€ гибкость

Ѕезопасность

ћожно легко управл€ть уровнем безопасности

—трогие политики безопасности

—етева€ поддержка

≈му не хватает хорошего сетевого решени€, но он позвол€ет добавл€ть сетевые плагины сторонних производителей.

ѕоставл€етс€ с собственным сетевым решением

ќбучение

—ложен дл€ начинающих, больше подходит дл€ профессиональных DevOps

ѕодходит дл€ начинающих


«аключение

¬се дело было в Kubernetes, OpenShift и их различи€х. ќбе платформы оркестрации контейнеров востребованы в »“-отрасли. “аким образом, в зависимости от ваших требований, вы можете выбрать наиболее подход€щую платформу оркестрации контейнеров дл€ вашей организации.

≈сли вам нужна гибкость с вашими проектами, то скорее всего должны выбрать Kubernetes. Ќо если вы можете следовать определенному подходу и хотите использовать платформу оркестрации контейнеров с простотой развертывани€ и управлени€, OpenShift - лучший выбор. “ак же если вы уже опытный DevOps и хотите попробовать что-то новое, то можно попытатьс€ перейти на Kubernetes. ≈сли же делаете первые шаги на поприще DevOps, выберите OpenShift, так как он сделает большую часть дел за вас.


—кидки 50% в Merion Academy

¬ыбрать курс