Что такое Red Hat OpenShift и чем он отличается от «ванильного» Kubernetes?

«Что такое Red Hat OpenShift и чем он отличается от «ванильного» Kubernetes?» — вопрос из категории Kubernetes, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Red Hat OpenShift — это enterprise-платформа для контейнеризации (PaaS — Platform as a Service), построенная на основе Kubernetes. Она предоставляет готовую, интегрированную и безопасную среду для полного жизненного цикла приложений: от сборки и развертывания до мониторинга и масштабирования.

Ключевые отличия и дополнения к "ванильному" Kubernetes:

Аспект "Ванильный" Kubernetes OpenShift
Установка и обновления Требует ручной или инструментированной установки (kubeadm, kOps). Поставляется как целостный продукт с автоматизированным установщиком (OpenShift Installer, Operator) и управляемыми обновлениями через Operators.
Безопасность по умолчанию Настраивается вручную (RBAC, Pod Security Policies/Standards, сетевые политики). Security-By-Design: строгие Security Context Constraints (SCC), запрет на запуск от root по умолчанию, встроенный контейнерный registry с сканированием уязвимостей.
Сборка и развертывание Требует отдельной настройки CI/CD (Jenkins, GitLab, ArgoCD). Встроенные возможности Source-to-Image (S2I) и BuildConfig для автоматической сборки образов из исходного кода. Готовые шаблоны приложений.
Сетевой стек Разные варианты (Calico, Flannel, Cilium). Использует собственную SDN на основе Open vSwitch, обеспечивающую изоляцию проектов (namespaces) на сетевом уровне.
Веб-консоль и Developer Experience Dashboard требует отдельной установки. Богатая веб-консоль и CLI (oc) с упрощенными командами для разработчиков (например, oc new-app, oc rollout). Интеграция с IDE.
Мониторинг и логирование Требует установки стека (Prometheus, Grafana, Loki/Fluentd). Встроенный стек мониторинга на основе Prometheus и логирования на основе Elasticsearch (через Cluster Logging Operator).
Мультитенантность Реализуется через Namespaces и RBAC. Концепция Projects (усиленные namespaces) с квотами, лимитами и политиками.

Пример типичного workflow в OpenShift:

# 1. Логин в кластер (CLI `oc` является надмножеством `kubectl`)
oc login https://api.openshift.example.com:6443

# 2. Создание нового проекта (namespace с дополнительными функциями)
oc new-project my-microservice

# 3. Развертывание приложения из Git-репозитория (используется S2I)
oc new-app https://github.com/mycompany/spring-boot-app.git

# 4. Создание внешнего маршрута (Route - аналог Ingress в Kubernetes)
oc expose svc/spring-boot-app

# 5. Просмотр логов сборки и деплоя
oc logs -f bc/spring-boot-app
oc rollout status dc/spring-boot-app

Вывод для DevOps-инженера: OpenShift — это Kubernetes "все-в-одном" с акцентом на безопасность, готовность для enterprise и снижение операционных затрат (OpEx). Вы платите за поддержку и интеграцию, но получаете платформу, которая из коробки готова для production-нагрузок, соответствия стандартам и ускорения delivery-циклов.