Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Как развернуть OpenShift
OpenShift — это enterprise-решение на основе Kubernetes, создано Red Hat. Развёртывание зависит от версии и платформы, но я расскажу о основных подходах.
Типы OpenShift
1. OpenShift Kubernetes Engine (OKE)
- Self-managed версия
- Требует собственную инфраструктуру (on-premise, AWS, Azure, GCP)
- Полный контроль
2. OpenShift Online
- Hosted версия Red Hat
- Самый простой (click and deploy)
3. OpenShift Container Platform (OCP)
- Enterprise версия
- На собственной инфраструктуре
- Полная поддержка Red Hat
Способ 1: На AWS с использованием OpenShift Installer
# 1. Скачиваем installer для своей ОС
wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-install-linux-x86_64.tar.gz
tar -xzf openshift-install-linux-x86_64.tar.gz
# 2. Генерируем SSH ключ для доступа к узлам
ssh-keygen -t rsa -f ~/.ssh/id_rsa -N ""
# 3. Создаём конфигурацию install-config.yaml
cat > install-config.yaml <<EOL
apiVersion: v1
baseDomain: example.com
metadata:
name: mycluster
networking:
networkType: OpenShiftSDN
clusterNetwork:
- cidr: 10.128.0.0/14
serviceCIDR: 172.30.0.0/16
platform:
aws:
region: us-east-1
rootVolume:
size: 120
pull:
pullSecret: '...json from Red Hat...'
EOL
# 4. Запускаем установку (это займёт 30-45 минут)
./openshift-install create cluster --dir=./cluster --log-level=info
# 5. Выводим credentials
export KUBECONFIG=./cluster/auth/kubeconfig
oc whoami
Способ 2: На-Premises с помощью openshift-install
Для VMware, KVM, Bare Metal:
# Требования
# - 3+ master nodes (минимум)
# - 2+ worker nodes
# - Каждый master: 4 CPUs, 16 GB RAM, 120 GB disk
# - Каждый worker: 2 CPUs, 8 GB RAM, 120 GB disk
# - Load balancer перед master API
# - DHCP и DNS
# Создаём install-config.yaml
cat > install-config.yaml <<EOL
apiVersion: v1
baseDomain: internal.example.com
metadata:
name: openshift-cluster
networking:
networkType: OpenShiftSDN
clusterNetwork:
- cidr: 10.128.0.0/14
serviceCIDR: 172.30.0.0/16
platform:
baremetal:
apiVIP: 192.168.1.100
ingressVIP: 192.168.1.101
hosts:
- name: master-1
role: master
bmc:
address: ipmi://192.168.1.201
username: admin
password: password
bootMACAddress: "00:11:22:33:44:55"
EOL
# Запускаем
./openshift-install create cluster
Способ 3: Docker Container для быстрого старта
# OpenShift по умолчанию включает встроенный контейнерный registry
# Создаём namespace
oc create namespace my-app
# Деплоим простое приложение
oc new-app --name=my-java-app \
--docker-image=openjdk:11 \
--env=JAVA_OPTS="-Xmx512m"
# Exposing сервис
oc expose service my-java-app
# Получаем route URL
oc get routes
Способ 4: Через Red Hat OpenStack Platform
# Если уже есть OpenStack
oc new-app openshift/origin:latest \
--param=OPENSTACK_AUTH_URL=...
--param=OPENSTACK_USERNAME=...
Основные команды после развёртывания
# Проверяем статус кластера
oc cluster-info
oc get nodes
oc get clusteroperators
# Масштабирование worker nodes
oc scale machineset worker-1 --replicas=5 -n openshift-machine-api
# Проверяем ingress controller
oc get ingresscontroller -n openshift-ingress-operator
# Логирование
oc logs pod-name -n namespace
# Доступ в shell контейнера
oc rsh pod-name
# Просмотр метрик
oc top nodes
oc top pods -n namespace
Post-Installation: Конфигурация
1. Настройка аутентификации
# OAuth через LDAP
oc apply -f - <<EOF
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
spec:
identityProviders:
- type: LDAP
ldap:
attributes:
email:
- mail
id:
- uid
name:
- cn
bindDN: cn=admin,dc=example,dc=com
bindPassword:
name: ldap-secret
ca:
name: ldap-ca
insecure: false
url: ldaps://ldap.example.com:636/ou=users,dc=example,dc=com
name: ldap-provider
mappingMethod: claim
EOF
2. Настройка storage
# Например, с NFS
oc create -f - <<EOF
apiVersion: v1
kind: PersistentVolume
metadata:
name: nfs-pv
spec:
capacity:
storage: 100Gi
nfs:
path: /exports/openshift
server: nfs.example.com
persistentVolumeReclaimPolicy: Recycle
EOF
3. Monitoring и Logging
# OpenShift включает Prometheus и Grafana из коробки
# Они в namespace openshift-monitoring
# Получаем credentials для Grafana
oc extract secret/grafana-admin-credentials \
-n openshift-monitoring --to=-
# Для ELK-подобного logging (OpenShift Logging)
oc new-project openshift-logging
oc create -f cluster-logging-operator.yaml
Развёртывание Java приложения
# 1. Создаём namespace
oc new-project payment-service
# 2. Создаём deployment
oc new-app --name=payment-api \
--docker-image=registry.example.com/payment-api:1.0 \
--env=SPRING_PROFILES_ACTIVE=production \
--env=DATABASE_URL=postgresql://db:5432/payments
# 3. Масштабируем
oc scale deployment payment-api --replicas=3
# 4. Экспонируем через Route
oc expose service payment-api --hostname=api.example.com
# 5. Настраиваем health checks
oc set probe deployment/payment-api \
--liveness --get-url=http://:8080/actuator/health \
--period-seconds=10
oc set probe deployment/payment-api \
--readiness --get-url=http://:8080/actuator/health/readiness \
--period-seconds=5
Требования
- Минимум 4 ядра для master (рекомендуется 8)
- Минимум 32 GB RAM для master (рекомендуется 64)
- 120 GB storage на каждом узле
- Stable network connection
- DNS, DHCP
- Load balancer (HAProxy, F5, AWS LB)
Лицензирование
- OpenShift Kubernetes Engine (OKE): бесплатно
- OpenShift Container Platform: платно (support и updates)
- OpenShift Online: платно
Альтернативы
Если OpenShift слишком heavy:
- OKD (Origin Kubernetes Distribution) — бесплатный OpenShift community edition
- Kubernetes — более lightweight, но меньше features
- Tanzu (VMware) — если в VMware ecosystem
- Rancher — управление несколькими k8s кластерами
OpenShift хорош для enterprise с требованиями к support, compliance, и готовыми инструментами. Для smaller проектов часто хватает обычного Kubernetes.