OpenShift

Resumen de una línea

Plataforma PaaS de Red Hat basada en Kubernetes que simplifica el despliegue de aplicaciones en contenedores sin necesidad de YAML complejo.

Definición

OpenShift v4 es una plataforma de contenedores de código abierto basada en Kubernetes que proporciona una solución completa de orquestación de contenedores y servicios de aplicaciones para desarrolladores y equipos de operaciones.

Características Principales

Como PaaS

  • Abstracción de complejidad: Desarrolladores no escriben YAML de Kubernetes
  • Herramientas de despliegue automático: S2I (Source 2 Image), despliegue desde código/Dockerfile
  • Ciclo de vida simplificado: Integración automática con repositorios Git
  • Construcción automática: BuildConfig ejecuta builds sin intervención manual
  • Despliegue continuo: Cambios en repositorio → nuevo despliegue automático

Como distribución de Kubernetes

  • Mantiene APIs de K8s: Pod, Service, Deployment, StatefulSet, Job, etc.
  • Añade abstracciones: ImageStream, Route (vs Ingress), DeployConfig
  • Gestión simplificada: CLI oc y consola web intuitiva
  • Ecosistema integrado: Tekton (CI/CD), Knative (serverless), Helm

Componentes Principales

RecursoPropósito
PodUnidad mínima (heredado de K8s)
DeploymentDeclarar aplicaciones escalables
ImageStreamGestión continua de imágenes, triggers automáticos
BuildConfigConstrucción automática desde Git/Dockerfile/imagen
RouteAcceso HTTP/HTTPS a aplicaciones (simplifica Ingress)
ServiceExposición interna de Pods
TemplatePlantillas parametrizadas para despliegues repetibles
ConfigMap/SecretParametrización y secretos

Ventajas

VentajaDescripción
Developer ExperienceDespliegue trivial: oc new-app maneja todo
AutomatizaciónS2I, builds, despliegues sin scripts manuales
EscalabilidadHeredado de K8s: replica sets, HPA
ResilienciaTolerancia a fallos, rolling updates automáticos
IntegraciónGit webhooks, CI/CD nativo, métricas
Multi-entornoFácil replicar dev → test → producción

Arquitectura de Deployments Típicos

Repositorio Git
    ↓ (webhook)
BuildConfig → Build → ImageStream (nueva imagen)
    ↓ (ImageStream trigger)
Deployment actualizado automáticamente
    ↓
Pods ejecutándose
    ↓
Route → acceso HTTP/HTTPS

Herramientas de Acceso

  • Consola Web: Interfaz gráfica en navegador (Developer/Administrator views)
  • CLI oc: Línea de comandos (similar a kubectl pero con extensiones)
  • API REST: Acceso programático a todos los recursos

OpenShift vs Kubernetes Puro

AspectoKubernetesOpenShift
Despliegue de appYAML a mano o Helmoc new-app automático
Construcción de imagenExternal (Docker, Buildah)Integrada (BuildConfig)
Acceso a appsIngress complejoRoute simple
ImágenesSimples refs a registrosImageStream + triggers
Flujo DevOpsManualIntegración Git automática

Relaciones

Conecta con

Instalaciones Disponibles

  • OpenShift Dedicated Developer Sandbox: Cloud pública, gratis, limitado
  • CRC (CodeReady Containers): Local en laptop, desarrollo
  • On-Premises: Instalación en infraestructura propia
  • AWS/Azure/Google: OpenShift en clouds públicos

Fuentes