Что такое OpenShift?

OpenShift — это платформа приложений, основанная на Kubernetes. Программное обеспечение используется для создания распределенных, масштабируемых сред приложений и разработки. На базе OpenShift могут быть реализованы собственные решения Platform-as-a-Service (PaaS), Software-as-a-Service (SaaS) и Containers-as-a-Service (CaaS).

Программное обеспечение позволяет полностью управлять жизненным циклом приложений, включая разработку, развертывание, эксплуатацию и обслуживание. Более двух тысяч предприятий по всему миру используют OpenShift для размещения своих приложений в гибридных облачных средах. Мы расскажем, как работает OpenShift и что делает это программное обеспечение особенным.

Какие версии OpenShift доступны?

OpenShift — это не один единственный продукт. Скорее, компания Red Hat выпускает несколько версий как программное обеспечение с открытым исходным кодом под лицензией Apache. Флагманской» версией является «Red Hat OpenShift Container Platform» (OCP). Она устанавливается в виде кластера Kubernetes на гибридной облачной инфраструктуре компании. Таким образом, один кластер OpenShift может охватывать несколько публичных и частных облачных сред.

В дополнение к OpenShift Container Platform (OCP) существует версия для сообщества «OKD», которая ранее носила название «OpenShift Origin». OKD — это адаптированный дистрибутив Kubernetes, который полагается на Kubernetes для управления кластером и контейнерами, соответствующими Open Container Initiative (OCI). Он также включает в себя возможности управления жизненным циклом приложений и инструменты DevOps. Интересно, что OKD является «восходящей» основой для разработки других версий OpenShift — подобно тому, как проект Chromium с открытым исходным кодом служит основой для разработки браузера Chrome.

Помимо OCP и OKD как «локальных» решений, которые размещаются на собственной инфраструктуре, существует также ряд «управляемых» решений. Они работают в различных публичных облаках от крупных провайдеров, а также в облачной инфраструктуре Red Hat. Мы обсуждаем в первую очередь OCP версии 4.8, которая является текущей версией на момент написания статьи. Давайте рассмотрим различные версии OpenShift:

Продукты OpenShift Описание Платформа
Red Hat OpenShift Container Platform (OCP) «Местное» корпоративное решение для использования в собственной гибридной облачной инфраструктуре. Red Hat Enterprise Linux CoreOS (RHCOS)
OKD «Местный» продукт сообщества, основа для OCP. Red Hat Enterprise Linux (RHEL) или CentOS
OpenShift Online Управляемое SaaS-решение Облако Red Hat
OpenShift Dedicated Управляемое PaaS-решение; Red Hat берет на себя полное администрирование системы Amazon AWS или Google Cloud

Как работает OpenShift?

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

Совет

Мы обсуждаем сходства и различия OpenShift и Kubernetes в отдельной статье.

Из каких компонентов состоит OpenShift?

OpenShift основан на программном стеке, который представляет собой стек взаимосвязанных технологий. На самом нижнем уровне в качестве операционной системы используется специальный дистрибутив Linux. Используемый здесь «Red Hat Enterprise Linux CoreOS» (RHCOS) устанавливается на физическое или виртуализированное оборудование.

Примечание

В предыдущих версиях OpenShift вместо RHCOS использовался «Red Hat Enterprise Linux» (RHEL).

На базе операционной системы RHCOS используется Kubernetes в качестве оркестратора контейнеров и кластеров. Kubernetes занимается развертыванием, масштабированием и управлением контейнеризированными приложениями. Операторы Kubernetes используются в качестве следующего уровня в стеке программного обеспечения. Это предварительно созданные, легко устанавливаемые «родные» для Kubernetes приложения. Помимо операторов, при настройке и запуске кластера OpenShift используется реестр контейнеров.

Какой Kubernetes включен в OpenShift?

OpenShift полагается на специальный дистрибутив Kubernetes, который использует CRI-O вместо Docker или containerd в качестве среды выполнения контейнеров. Отказ от Docker в качестве базовой технологии дает преимущества в плане безопасности и совместимости с другими форматами контейнеров.

Что такое оператор в OpenShift?

Оператор Kubernetes следит за здоровьем всего приложения. С помощью установки, эксплуатации и обслуживания операторы охватывают полный жизненный цикл приложения Kubernetes. По словам документации OpenShift:

Цитата

«Оператор — это метод упаковки, развертывания и управления Kubernetes-нативным приложением. Kubernetes-native приложение — это приложение, которое развертывается на Kubernetes и управляется с помощью API Kubernetes и инструментария kubectl». — Источник: cloud.redhat.com/learn/topics/operators

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

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

Что такое реестр в OpenShift?

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

«Quay» — это реестр, разработанный компанией Red Hat с акцентом на безопасность. Образы, необходимые при установке кластера OpenShift, получаются из Quay. При этом Quay может управлять другими артефактами сборки в дополнение к образам контейнеров. По словам документации Red Hat:

Цитата

«Quay — это контейнерный реестр для хранения контейнеров, диаграмм Helm и другого содержимого, связанного с контейнерами». — Источник: www.redhat.com/sysadmin/introduction-quay

Следуя многоуровневой модели продуктов OpenShift OCP и OKD, существует несколько версий Quay:

Реестр Объяснение Платформа
Red Hat Quay работает на собственной вычислительной инфраструктуре, включая частные облака; интегрируется в OpenShift оператором собственная облачная среда, включая частное облако
Red Hat Quay.io управляется Red Hat с поддержкой корпоративного уровня Облако

Как устроен OpenShift?

OpenShift построен на базе Kubernetes в виде кластера контейнеров. На уровне кластера OpenShift включает два уровня:

  1. Плоскость управления

Плоскость управления состоит из так называемых «машин плоскости управления». Они также известны как «главные машины» и управляют кластером OpenShift Container Platform.

  1. Рабочие машины

Рабочие машины, которые также известны как «вычислительные машины», выполняют фактическую работу кластера OpenShift. Мастер-машины назначают задания рабочим машинам и контролируют их выполнение.

Какие службы работают на рабочих машинах?

Рабочая машина запускает следующие сервисы и, таким образом, входит в кластер OpenShift:

  • CRI-O, как среда выполнения контейнеров,
  • Kubelet, как сервис, который принимает и обрабатывает запросы на запуск и остановку рабочих нагрузок,
  • сервис-прокси, который обрабатывает связь между рабочими машинами.

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

Какие компоненты составляют плоскость управления?

Давайте подробно рассмотрим структуру плоскости управления ниже. Мы различаем компоненты реализации Kubernetes и компоненты, специфичные для OpenShift:

Компонент Kubernetes Пояснение
Сервер API Kubernetes Сервер API Kubernetes проверяет и настраивает данные для стручков, сервисов и контроллеров репликации. Кроме того, API выступает в качестве центрального интерфейса для глобальных данных о состоянии кластера.
etcd Служба etcd содержит постоянное состояние мастера. Остальные компоненты следят за изменениями в ectd и при необходимости корректируют свое состояние.
Менеджер контроллера Kubernetes Менеджер контроллеров Kubernetes отслеживает etcd на предмет изменений таких объектов, как контроллеры репликации, пространства имен и учетных записей служб, и использует API для достижения требуемого состояния. Существует кластер из нескольких таких процессов, один из которых является лидером.
Планировщик Kubernetes Планировщик Kubernetes обнаруживает вновь созданные стручки, которым еще не назначен узел, и выбирает лучший узел для размещения стручки.

Компоненты плоскости управления, специфичные для OpenShift, реализованы в виде операторов:

Компонент OpenShift Объяснение Управляется
OpenShift API Server OpenShift API Server проверяет и настраивает ресурсы OpenShift, такие как проекты, маршруты и шаблоны. Оператор OpenShift API Server
Менеджер контроллера OpenShift OpenShift Controller Manager отслеживает etcd на предмет изменений в объектах OpenShift, таких как проекты, маршруты и объекты контроллера шаблонов, и использует API для достижения желаемого состояния. Оператор диспетчера контроллеров OpenShift
OpenShift OAuth API Server OpenShift OAuth API Server проверяет и настраивает данные для аутентификации на OpenShift Container Platform. Сюда входят пользователи, группы и OAuth-токены. Оператор аутентификации кластера
Сервер OpenShift OAuth Пользователи запрашивают токен у OpenShift OAuth Server для аутентификации в API. Оператор аутентификации кластера

Для каких сценариев применения используется OpenShift?

Контейнерная платформа OpenShift в основном используется для создания сред приложений и разработки. Это позволяет внедрять собственные решения PaaS, SaaS и CaaS. Из-за мощности и сложности программного обеспечения OpenShift используется в основном для долгосрочных проектов крупных организаций.

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

Еще одним важным аспектом, говорящим в пользу использования OpenShift, является его высокий уровень безопасности. Предотвращение кибервзломов и утечек данных крайне важно для крупных международных компаний. Нарушения безопасности могут привести к долговременному ущербу для имиджа компании и существенным финансовым штрафам.

Функции, включенные в OpenShift, обеспечивают быструю разработку рабочих процессов. Это приводит к радикальному сокращению времени разработки на местах; штатные команды разработчиков программного обеспечения могут самостоятельно управлять своими ресурсами и постоянно продвигать разработку.

Если компания использует одно из доступных предложений Managed OpenShift, она избавляется от необходимости администрирования серверов и операционных систем. Вместо того чтобы беспокоиться об обновлениях и резервном копировании, компания может сосредоточиться на главном: Инновации и создание ценности для клиентов.

Конечно, OpenShift не подходит для малого бизнеса или индивидуальных разработчиков. Чтобы удовлетворить их потребности, лучше обратиться к одной из доступных альтернатив OpenShift или Kubernetes.

Каков набор функций OpenShift?

Основным преимуществом OpenShift перед «голым» Kubernetes являются встроенные функции удобства. Они выходят за рамки простого управления кластером Kubernetes. Среди прочего, OpenShift включает в себя функциональные возможности для:

  • Программно-определяемые сети (SDN)
  • Маршрутизация
  • Аутентификация
  • Мониторинг и протоколирование

Для управления платформой OpenShift включает мощный веб-интерфейс в дополнение к обязательным инструментам командной строки. Рабочие процессы разработки и DevOps ускоряются благодаря использованию «Red Hat OpenShift Pipelines». Используется фреймворк Tekton с открытым исходным кодом для «непрерывной интеграции» / «непрерывной разработки» (CI/CD). В дополнение к контейнерным приложениям могут использоваться современные «бессерверные» подходы на основе «Serverless Kubernetes» (Knative).

Еще одним направлением OpenShift является предоставление распределенных микросервисных архитектур. Также известная как «Red Hat Service Mesh», эта модель приложений основана на проекте с открытым исходным кодом «Istio». Чтобы справиться со сложностью, связанной с микросервисными архитектурами, OpenShift включает ряд других инструментов: «Prometheus» используется для управления мониторингом и уведомлениями, в то время как «Jaeger» позволяет отслеживать транзакции. «Kiali» используется для визуализации сетки сервисов.

Каковы преимущества и недостатки OpenShift?

Одним из самых больших преимуществ использования OpenShift является возможность запуска программного обеспечения в гибридной облачной среде. Здесь один кластер OpenShift охватывает границы нескольких частных и публичных облаков. Кластеры OpenShift, использующие Red Hat Enterprise Linux CoreOS (RHCOS) в качестве единственной операционной системы, выигрывают от автоматизации процессов обновления и модернизации.

Интегрированные технологии Red Hat и инструменты и процессы управления, встроенные в платформу, обеспечивают высокий пользовательский опыт. Модель разработки с открытым исходным кодом и встроенные функции DevOps обеспечивают быстрые процессы разработки. Более широкое использование операторов в качестве универсального формата приложений способствует стандартизации и упрощает ранее сложную кастомизацию.

Использование CRI-O в качестве среды выполнения контейнеров вместо Docker приводит к повышению безопасности платформы. Удобный веб-интерфейс считается более мощным и понятным, чем сопоставимая приборная панель Kubernetes. OpenShift также превосходит в командной строке команду oc, что делает платформу более простой в использовании.

Конечно, вышеупомянутые особенности OpenShift также вызывают некоторые недостатки. Например, ярым пользователям Kubernetes не хватает мощных диаграмм Helm, которые описывают настройку инфраструктуры. Кроме того, не все контейнеры Docker Hub могут быть использованы в OpenShift из-за строгих настроек безопасности. Ориентация на собственный Linux-дистрибутив Red Hat Red Hat Enterprise Linux CoreOS (RHCOS) также имеет ограничивающий эффект; Kubernetes в этом отношении более гибок.

На какой инфраструктуре можно запустить OpenShift?

OpenShift может быть запущен практически на любом уровне вычислительной инфраструктуры, от «голых» машин в вашем собственном центре обработки данных, виртуализированного оборудования в частных и публичных облачных средах до граничных устройств. Мы различаем «управляемые» решения, в которых управление платформой OpenShift осуществляется поставщиком, и «самоуправляемые» установки под управлением клиента:

Какие существуют варианты запуска управляемого OpenShift?

Продукт Инфраструктура Управляется Поддерживается
Microsoft Azure Red Hat OpenShift Microsoft Azure Red Hat и Microsoft Red Hat и Microsoft
Red Hat OpenShift Dedicated Amazon AWS или Google Cloud Red Hat Red Hat
Red Hat OpenShift на IBM Cloud Облако IBM IBM Red Hat и IBM
Red Hat OpenShift Service на AWS Amazon AWS Red Hat и AWS Red Hat и AWS

Какие существуют варианты запуска самоуправляемого OpenShift?

Продукт Инфраструктура Управляется Поддерживается
Red Hat OpenShift Platform Plus Частное облако, публичное облако, физическая машина, виртуальная машина, Edge Клиент Red Hat / Поставщик инфраструктуры
Red Hat OpenShift Container Platform Частное облако, публичное облако, физическая машина, виртуальная машина, Edge Клиент Red Hat / Поставщик инфраструктуры
Red Hat OpenShift Kubernetes Engine Частное облако, публичное облако, физическая машина, виртуальная машина, граница Клиент Red Hat / Поставщик инфраструктуры

Оцените статью
cdelat.ru
Добавить комментарий