Какой у вас опыт работы с платформой OpenShift?

Ответ

Работал с Red Hat OpenShift как с enterprise-платформой на основе Kubernetes.

Основные задачи и отличия от «ванильного» K8s:

  • Развертывание приложений: Использовал DeploymentConfig (специфичный для OpenShift ресурс) и стандартные Deployment.
  • Сетевое взаимодействие: Настройка Route (аналог Ingress) для внешнего доступа к сервисам.
  • CI/CD: Интеграция со встроенными (Source-to-Image, S2I) и внешними (Jenkins) инструментами сборки.
  • Безопасность и управление: Работа с SecurityContextConstraints, ServiceAccount, квотами и лимитами.
  • Администрирование: Использование CLI (oc) для операций, выходящих за рамки kubectl.

Пример манифеста DeploymentConfig:

apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: my-app
spec:
  replicas: 2
  selector:
    app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: app-container
        image: registry.example.com/app:latest
        ports:
        - containerPort: 8080

Ключевые команды oc:

oc login <cluster-url>          # Аутентификация
oc new-project my-project       # Создание проекта (неймспейса)
oc status                       # Просмотр состояния
oc rollout latest dc/my-app     # Запуск нового деплоя

OpenShift предоставляет готовую, более безопасную и интегрированную платформу для корпоративного контейнерного стека.

Ответ 18+ 🔞

Давай я тебе на пальцах объясню, что это за зверь такой — Red Hat OpenShift. Представь себе обычный Kubernetes, но в дорогом костюме, с охраной и пропускной системой на входе. Это он и есть, корпоративная платформа на базе K8s, где всё уже за тебя прикручено, но и свои заморочки появились.

Чем он там от «ванильного» K8s отличается, или «За что они деньги берут»:

  • Развертывание приложений: Тут можно по-старинке, через обычные Deployment, но есть и их родной уродец — DeploymentConfig. Эта штука, блядь, умеет в триггеры: например, новая версия образа в реестре прилетела — и деплой сам поехал. Удобно, но лишняя сущность, ёпта.
  • Сетевое взаимодействие: Вместо Ingress'ов тут свои Route. Настроил — и у тебя сразу красивое доменное имя для сервиса, HTTPS если надо. Не то чтобы космос, но из коробки работает.
  • CI/CD: Тут вообще отдельная песня. Есть встроенная магия Source-to-Image (S2I) — ты закидывай исходный код, а он тебе сам образ соберёт, как обезьяна. Для серьёзного пайплайна, конечно, подключали Jenkins, но базовая фича — просто огонь для прототипов.
  • Безопасность и управление: Вот где начинается настоящий админский треш. SecurityContextConstraints — это такие, блядь, политики безопасности, которые строже твоей тёщи. ServiceAccount, квоты, лимиты — всё это нужно крутить, иначе приложение просто не запустится. Не «не сможет», а «не дадут», вот в чём разница.
  • Администрирование: Забудь про kubectl как про единственную истину. Тут свой царь и бог — команда oc. Она и всё то же самое умеет, и своё, специфичное. Без неё ты как без рук.

Вот смотри, как их родной DeploymentConfig выглядит, чтоб ты понимал масштаб:

apiVersion: apps.openshift.io/v1
kind: DeploymentConfig
metadata:
  name: my-app
spec:
  replicas: 2
  selector:
    app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: app-container
        image: registry.example.com/app:latest
        ports:
        - containerPort: 8080

Выглядит почти как родной, да? Но дьявол, как всегда, в деталях и в том, как эта хрень потом себя ведёт.

А вот базовые команды oc, без которых ты на этом пароходе — просто балласт:

oc login <cluster-url>          # Предъяви пропуск, сука. Без логина нихуя.
oc new-project my-project       # Не неймспейс, а «проект». Звучит солиднее, да?
oc status                       # Глянуть, что вообще происходит. Часто видишь пиздец, но уже структурированный.
oc rollout latest dc/my-app     # Запустить новый деплой. Главное — не в рабочее время, а то тебя сожрут.

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