
De Kubernetes a OpenShift: Ventajas de usar una plataforma gestionada de contenedores
por Raúl Unzué¿Qué es OpenShift?
OpenShift está en boca de todos cuando hablamos de contenedores y despliegue de aplicaciones en la nube. Pero, ¿qué es realmente? Si alguna vez te preguntaste cómo pasar de Docker a algo más potente o cómo correr tus apps de forma escalable y automatizada, esta guía es para ti. Y si ya estás metido en el mundo de la infraestructura como servicio (como OpenStack), esto te interesa todavía más.
OpenShift es una plataforma de Kubernetes gestionada que automatiza el despliegue, escalado y gestión de aplicaciones en contenedores. Está desarrollada por Red Hat y combina Kubernetes con herramientas y servicios adicionales que facilitan el trabajo a equipos DevOps y de desarrollo.
Mientras que Kubernetes es poderoso, puede ser complejo de manejar por sí solo. OpenShift viene a simplificar esa curva de aprendizaje, aportando seguridad, CI/CD, dashboard web, y muchas cosas listas para usar. De hecho, si estás trabajando con nubes como OpenStack, OpenShift puede ser el siguiente paso natural en tu infraestructura cloud.
Componentes Clave de OpenShift
- Master Nodes
Son los cerebros de la operación. Controlan y orquestan todo el clúster:
- API Server: punto de entrada para comandos y peticiones.
- Scheduler: decide dónde se ejecutan los pods.
- Controller Manager: mantiene el estado deseado de los objetos.
- Worker Nodes
Aquí es donde vive tu aplicación. Ejecutan los pods y están controlados por los masters.
- etcd
La base de datos que guarda el estado completo del clúster. Rápida, distribuida y confiable.
- Ingress y Routes
Controlan el tráfico entrante. OpenShift usa "routes / rutas" para exponer tus servicios al exterior, lo que simplifica bastante la configuración de accesos.
- OpenShift Console
Una interfaz web bastante amigable que permite gestionar proyectos, ver logs, desplegar apps, y todo sin tocar una sola línea de comando (aunque siempre puedes usar "oc" si prefieres la terminal).
- Source-to-Image (S2I)
Un sistema que permite construir imágenes de contenedor directamente desde el código fuente. Ideal para pipelines automáticos de CI/CD.
- Image Streams
Gestionan versiones de imágenes de forma eficiente y segura. Muy útiles para integraciones con Git y despliegues automáticos.
- BuildConfigs y DeploymentConfigs
- BuildConfig define cómo se construye tu app.
- DeploymentConfig define cómo y cuándo se despliega.
- Projects y Namespaces
OpenShift organiza todo en "proyectos", que son similares a namespaces de Kubernetes. Esto permite separar entornos (dev, staging, prod) fácilmente.
- Operator Framework
Automatiza la gestión del ciclo de vida de aplicaciones complejas dentro del clúster, como bases de datos o servicios de terceros.
Diferencia entre OpenStack y OpenShift
- OpenStack es una plataforma de código abierto para construir y gestionar nubes públicas y privadas. Permite crear infraestructura como servicio (IaaS), lanzando máquinas virtuales, redes, almacenamiento, etc.
- OpenShift, por otro lado, es una plataforma de contenedores basada en Kubernetes que facilita el despliegue, la escalabilidad y la gestión de aplicaciones en contenedores. Añade seguridad, herramientas CI/CD y multitenencia.
Ambas tecnologías se complementan, pudiendo tener OpenStack como infraestructura y OpenShift como plataforma de aplicaciones por encima.
Comparativa entre componentes
Componente OpenShift | Función en OpenShift | Componente OpenStack (equivalente o relacionado) | Función en OpenStack |
---|---|---|---|
Kubernetes | Orquestación de contenedores (pods, servicios, deployments). | Nova | Orquestación de máquinas virtuales. |
Image Registry | Almacén de imágenes de contenedores internas. | Glance | Gestión y provisión de imágenes de disco para VMs. |
Operator Framework | Automatización del ciclo de vida de aplicaciones complejas. | Heat | Orquestación de infraestructuras como código (IaC). |
Kubernetes SDN | Red interna para comunicación entre pods/servicios. | Neutron | Redes virtuales, subredes, routers, etc. |
BuildConfig/DeploymentConfig | Gestión de ciclos de construcción y despliegue de apps. | Heat/Glance | Automatización del despliegue de instancias/infraestructura. |
OpenShift Console | Interfaz gráfica de gestión del clúster. | Horizon | Dashboard web de administración del entorno. |
S2I (Source to Image) | Construcción automática de imágenes desde código fuente. | Glance | Provisión de imágenes para crear instancias. |
Recomendación mínima para laboratorio mixto (OpenStack + OpenShift)
Nodo |
Función |
RAM |
CPU |
Disco |
vm-100 |
OpenStack Controller |
8 GB |
4 vCPU |
80 GB |
vm-101 |
Compute Node 1 |
8 GB |
4 vCPU |
80 GB |
vm-200 |
OpenShift Control Plane |
16 GB |
4 vCPU |
60 GB |
vm-201 |
OpenShift Worker |
8 GB |
2 vCPU |
40 GB |
Requerimientos por Componentes
Para poder instalar los diferentes componentes necesitarás los siguientes recursos de Hardware y Software:
Componente |
RAM Mínima |
CPU Mínima |
Disco |
Notas técnicas |
Control Plane |
16 GB |
4 vCPU |
50 GB+ |
etcd, API, Scheduler. Requiere estabilidad y RAM. |
Worker Node |
8 GB |
2–4 vCPU |
50 GB+ |
Ejecuta pods. El número depende de la carga. |
Ingress Controller |
2 GB |
1 vCPU |
10 GB |
NGINX o HAProxy. Para entrada de tráfico externo. |
Registry (Quay o interno) |
4 GB |
2 vCPU |
20 GB+ |
Almacena imágenes de contenedores. |
Monitoring stack (Prometheus/Grafana) |
4–8 GB |
2–4 vCPU |
20 GB+ |
Altamente configurable. Requiere espacio para métricas. |
Logging (Loki/ELK/Fluentd) |
4–8 GB |
2–4 vCPU |
50 GB+ |
Importante para auditoría y seguridad. |
Single-node OKD/CRC |
9–16 GB |
4 vCPU |
50 GB |
Para entorno de pruebas local. |
Comandos más utilizados
A continuación, os entregamos los comandos "oc"
más utilizados en el día a día, tanto para desarrolladores como para administradores. Ya sea que estés comenzando o que quieras repasar lo esencial, este resumen te servirá como referencia rápida y práctica:
Comandos Básicos de OpenShift (oc)
Comando |
Función |
oc login |
Inicia sesión en el clúster de OpenShift. |
oc whoami |
Muestra el usuario actual autenticado. |
oc new-project |
Crea un nuevo proyecto (namespace). |
oc projects |
Lista los proyectos disponibles. |
oc project |
Cambia al proyecto especificado. |
Despliegue de Aplicaciones
Comando |
Función |
oc new-app |
Crear app desde código |
oc start-build |
Inicia una compilación (build) manualmente. |
oc get builds |
Lista las compilaciones realizadas. |
oc rollout status dc/ |
Muestra el estado del despliegue (deploymentConfig). |
oc cancel-build |
Cancela una compilación en curso. |
Visualización y Recursos
Comando |
Función |
oc get all |
Lista todos los recursos del proyecto actual. |
oc get pods |
Lista los pods en ejecución. |
oc describe pod |
Muestra detalles de un pod. |
oc logs |
Muestra los logs de un pod. |
oc exec |
Ejecuta un comando dentro del contenedor. |
Gestión de Recursos
Comando |
Función |
oc create -f |
Crea recursos desde un manifiesto YAML. |
oc delete -f |
Elimina recursos definidos en el YAML. |
oc expose svc/ |
Expone un servicio al exterior mediante una route. |
oc scale dc/ |
Escala el número de réplicas de un deploymentConfig. |
Imágenes y Builds
Comando |
Función |
oc import-image |
Importa una imagen desde un repositorio externo. |
oc tag |
Etiqueta una imagen para gestionarla internamente. |
Seguridad y Usuarios
Comando |
Función |
oc policy add-role-to-user |
Asigna un rol a un usuario. |
oc adm policy who-can |
Muestra quién puede realizar una acción sobre un recurso. |
Escala despliegues de forma segura
OpenShift te ofrece todo lo bueno de Kubernetes, pero sin que tengas que sufrir su complejidad técnica desde el primer minuto. Es ideal tanto para desarrolladores que quieren lanzar sus apps rápido, como para equipos DevOps que buscan estandarizar y escalar despliegues de forma segura.
Si ya conoces OpenStack y te interesa seguir avanzando en el mundo cloud, OpenShift es la siguiente parada natural. De hecho, puedes integrarlo perfectamente para tener una nube privada robusta y flexible. Si no has leído nuestra guía de OpenStack, te la recomiendo aquí: Todo sobre OpenStack
Fin del Artículo. ¡Cuéntanos algo en los Comentarios!