Ответ
Работал с 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 мониторинг, логи, контроль доступа и прочую хуйню. Берёшь эту платформу — и у тебя сразу готовая, охраняемая территория. Правда, и свободы поменьше, и иногда чувствуешь себя в золотой клетке. Но зато стабильно, блядь. Как швейцарские часы, только с открытым исходным кодом и своей долей ебалы.