OpenShift
Introducción a OpenShift
OpenShift es una plataforma de orquestación de contenedores basada en Kubernetes que añade una capa de automatización, seguridad y gestión empresarial.
Pertenece a Red Hat (ahora parte de IBM) y su versión open source es OKD (Origin Community Distribution of Kubernetes).
OpenShift se sitúa dentro del modelo PaaS (Platform as a Service), aunque también ofrece componentes que pueden considerarse CaaS (Container as a Service) y se integra fácilmente con soluciones SaaS (Software as a Service).
Su objetivo principal es simplificar el ciclo de vida completo de las aplicaciones (desde el desarrollo hasta el despliegue y monitoreo) en entornos híbridos o multi-nube.
Referencias
- ¿Qué es OpenShift? Diferencias con Docker y Kubernetes • S&M Services
- Qué es OpenShift y cómo utilizarlo
- Cómo empezar a utilizar OpenShift - YouTube
-
[Installation overview OKD 4](https://docs.okd.io/latest/installing/overview/index.html)
Comparativa: OpenShift vs Kubernetes vs Docker
| Concepto | Docker | Kubernetes | OpenShift |
|---|---|---|---|
| Nivel | Contenedorización | Orquestación de contenedores | Plataforma PaaS basada en Kubernetes |
| Gestión de imágenes | Docker Hub | No gestiona directamente | Registro privado integrado (ImageStreams) |
| Seguridad | Control manual | Moderada | Política de seguridad reforzada (SecurityContextConstraints) |
| Acceso | CLI + API | kubectl | oc CLI + API + Web Console |
| CI/CD integrado | No | Parcial (requiere Jenkins u otros) | Sí, con pipelines (Tekton, Jenkins, GitOps) |
| Control de acceso | Básico | RBAC | RBAC + OAuth + control de acceso avanzado |
| Networking | Bridge/NAT | Pod network (CNI) | SDN + HAProxy + routing avanzado |
| Plantillas | Dockerfiles | Helm Charts | Templates nativos y Operators |
Arquitectura de OpenShift
Componentes principales
- Master Nodes
- Ejecutan los componentes de control: API Server, Controller Manager, Scheduler.
- Worker Nodes
- Alojan los contenedores de las aplicaciones.
- etcd
- Base de datos distribuida para almacenar el estado del clúster.
- Router (HAProxy)
- Gestiona el enrutamiento del tráfico hacia los pods.
- Registry
- Repositorio interno de imágenes (sustituye o complementa Docker Hub).
- Build y Deployment Configurations
- Permiten pipelines y despliegues automatizados.
Seguridad y Control de Acceso
- RBAC (Role-Based Access Control): gestiona permisos por usuario o grupo.
- OAuth integrado: autenticación centralizada.
- control de acceso granular en recursos como Pods, Routes o Secrets.
- SCC (Security Context Constraints): control de privilegios a nivel de contenedor.
- HAProxy Router: balanceo de carga y control del tráfico entrante.
Despliegue y Gestión
Instalación de OKD (versión open source)
OpenShift se puede desplegar en entornos on-premises, virtualizados o en nube pública.
OKD ofrece documentación oficial detallada:
Métodos de instalación
- IPI (Installer-Provisioned Infrastructure): instalación automatizada (AWS, GCP, Azure, Bare Metal).
- UPI (User-Provisioned Infrastructure): instalación manual con control total del entorno.
Helm vs Templates de OpenShift
Helm en Kubernetes
- Helm es el package manager para Kubernetes, usado para empaquetar, distribuir y gestionar aplicaciones mediante charts.
- Permite versionar configuraciones, reutilizar plantillas y desplegar aplicaciones complejas fácilmente.
Templates en OpenShift
- Los Templates son archivos JSON/YAML que definen objetos reutilizables dentro del clúster (pods, servicios, routes, etc.).
- Pueden incluir parámetros dinámicos y son gestionables desde la CLI (
oc) o la interfaz web.
Diferencia clave:
OpenShift Templates están integrados en la plataforma, mientras que Helm requiere instalación adicional.
Sin embargo, OpenShift es compatible con Helm, lo que permite combinar ambos sistemas.
Enlaces
-
[Helm Quickstart Guide](https://helm.sh/docs/intro/quickstart/)
API y Extensibilidad
- OpenShift expone una API RESTful compatible con Kubernetes.
- Permite integración con sistemas de CI/CD, monitoreo y automatización (por ejemplo, CICD pipelines con Jenkins, Tekton o ArgoCD).
- Los Operators extienden la API para gestionar aplicaciones complejas mediante controladores personalizados.
Integración con DevOps y CI/CD
- Pipelines declarativos basados en Tekton o Jenkins.
- Despliegue continuo con GitOps.
- Integración nativa con repositorios Git, Webhooks y control de versiones.
- Control del flujo de despliegue, rollback, pruebas y versionado de contenedores.
Conclusión
OpenShift es una solución integral que amplía las capacidades de Kubernetes, añadiendo herramientas para desarrollo, seguridad, despliegue continuo y gestión empresarial.
Su enfoque “batteries included” lo convierte en una de las plataformas más completas para microservicios, automatización DevOps, y cloud híbrida.
OpenShift (ampliación de fundamentos)
- CICD
- DevOps
- Infraestructura como código
- GitOps
- Observabilidad
- Service Mesh
- cloud híbrida
- edge computing
- Seguridad en contenedores
Infraestructura como Código y GitOps
GitOps en OpenShift
- En OpenShift, GitOps aplica el principio de que el estado deseado del clúster y las aplicaciones se definen y almacenan en un repositorio Git.
- Herramientas como Argo CD o Flux sincronizan el estado del clúster con el repositorio, garantizando despliegues consistentes y auditables.
- Cada cambio se realiza mediante pull requests, lo que aporta trazabilidad y control de versiones a toda la infraestructura.
Beneficios
- Versionado de configuraciones y despliegues.
- Revisión de código antes de aplicar cambios en producción.
- Rollbacks inmediatos desde commits previos.
- Reproducibilidad y coherencia entre entornos.
Recursos
- Argo CD
- Tekton
- Kustomize
Observabilidad, Monitoreo y Logging
Métricas y Alertas
- OpenShift integra nativamente Prometheus y Alertmanager para recolectar métricas de nodos, pods y aplicaciones.
- Los dashboards con Grafana permiten visualizar KPIs y SLOs en tiempo real.
Logging Centralizado
- OpenShift utiliza el stack EFK (Elasticsearch, Fluentd, Kibana) o Loki + Grafana para unificar logs de los pods.
- Los logs pueden enviarse a sistemas externos como Splunk o Graylog mediante Fluentd.
Trazabilidad Distribuida
- Integración con Jaeger o Tempo para rastrear flujos entre microservicios.
- Facilita la detección de cuellos de botella y latencias en sistemas distribuidos.
Buenas prácticas
- Establecer etiquetas y nombres coherentes para recursos.
- Definir alertas orientadas a negocio y SLOs claros.
- Mantener retención de logs ajustada a normativas y costes.
Almacenamiento y Persistencia
Persistencia en entornos de contenedores
- Uso de PersistentVolume (PV) y PersistentVolumeClaim (PVC) para manejar datos que sobreviven a los pods.
- Compatible con sistemas de almacenamiento como:
- CephFS / RBD (nativo de Red Hat)
- NFS, GlusterFS
- EBS, GCP Persistent Disks, Azure Disks (en entornos cloud)
- Se soporta Dynamic Provisioning, donde los volúmenes se crean automáticamente según la clase de almacenamiento.
Respaldo y recuperación
- Herramientas como Velero o OADP (OpenShift API for Data Protection) permiten realizar backups del clúster y datos persistentes.
- Las políticas de snapshot se gestionan a nivel de Storage Class.
Redes, Service Mesh y Seguridad de Red
Red en OpenShift
- Basada en CNI (Container Network Interface), con soporte para SDN o redes externas (OVN-Kubernetes).
- Los Services exponen pods internamente, mientras que las Routes manejan tráfico externo vía HAProxy o Ingress Controllers.
Service Mesh
- OpenShift puede integrar Red Hat Service Mesh (basado en Istio) para:
- Comunicación segura mTLS entre microservicios.
- Control granular de tráfico, retries, circuit breaking.
- Trazabilidad integrada con Jaeger y Kiali.
- Permite definir políticas de seguridad, cuotas y enrutamiento avanzado sin modificar el código de las aplicaciones.
Network Policies
- Controlan la comunicación entre pods según namespaces o etiquetas.
- Implementan aislamiento de red por defecto (Zero Trust a nivel de pod).
Multi-Cloud, Edge y Modernización de Aplicaciones
Despliegue Multi-Cloud
- OpenShift puede instalarse sobre AWS, Azure, GCP, VMware o bare metal, ofreciendo una capa unificada de orquestación.
- Permite clusters federados o hub-and-spoke gestionados desde OpenShift Cluster Manager.
Edge Computing
- OpenShift Edge optimiza despliegues en entornos con recursos limitados o conectividad intermitente.
- Casos de uso: IoT, retail distribuido, manufactura, transporte.
Modernización de Aplicaciones
- Migración de monolitos a microservicios con Source-to-Image (S2I) o BuildConfig.
- Contenerización automatizada y pipelines para transformar aplicaciones legadas en cloud-native.
Operaciones “Day 2”
- Escalado automático de aplicaciones y nodos mediante Horizontal/Vertical Pod Autoscaler y Cluster Autoscaler.
- Actualizaciones “rolling” y parcheo sin downtime.
- Supervisión del estado del clúster con oc adm top, oc get events, y must-gather.
- Tolerancia a fallos mediante réplicas y distribución por zonas (Availability Zones).
- Optimización de costes y recursos con etiquetado (labels, annotations) y políticas de afinidad.
Buenas Prácticas DevOps en OpenShift
- Adoptar pipelines declarativos (Tekton / Jenkins / GitOps).
- Separar entornos: dev, staging, prod, con promoción controlada.
- Integrar scaneo de imágenes y firma (Quay Security Scanner, Trivy).
- Aplicar el principio de menor privilegio en RBAC y SCC.
- Automatizar despliegues mediante Webhooks y Build Triggers.
- Supervisar métricas DORA: lead time, frecuencia de despliegue, tasa de fallos, MTTR.
Recursos y documentación adicional
- Argo CD Documentation
- Red Hat OpenShift GitOps
- OpenShift Service Mesh
- OKD Data Protection (OADP)
- Monitoring and Logging in OpenShift
Conclusión
Esta ampliación cubre los temas avanzados de OpenShift que extienden su rol más allá de la orquestación básica:
- Integración total con GitOps e IaC.
- Observabilidad, trazabilidad y seguridad de red avanzadas.
- Operaciones continuas y despliegues multi-cloud.
- Enfoque DevOps moderno con pipelines declarativos, automatización y visibilidad completa del ciclo de vida.
Con estos bloques, se completa una visión end-to-end de OpenShift como plataforma empresarial de contenedores, automatización y nube híbrida.
OpenShift Cheat Sheet
- Kubernetes
- DevOps
- CICD
- GitOps
- Helm
- Service Mesh
- RBAC
- SecurityContextConstraints
- Infraestructura como código
📦 Conceptos Clave
| Concepto | Descripción breve |
|---|---|
| Pod | Unidad mínima de ejecución (contenedor o grupo de contenedores). |
| DeploymentConfig | Controla versiones y despliegues de aplicaciones. |
| BuildConfig | Define cómo se construyen imágenes (Builds). |
| Route | Expone servicios al exterior del clúster (usando HAProxy). |
| Service | Abstracción que agrupa pods y gestiona su acceso interno. |
| Project (Namespace) | Espacio aislado de recursos dentro del clúster. |
| ImageStream | Mecanismo para gestionar versiones de imágenes de contenedor. |
| Template | Define múltiples objetos reutilizables (como YAML parametrizado). |
| SCC (Security Context Constraints) | Define políticas de seguridad para pods. |
| Operator | Extiende Kubernetes para gestionar apps complejas. |
| Tekton / Jenkins | Sistemas CI/CD integrados en OpenShift. |
🧠 Comandos básicos (oc CLI)
Autenticación y contexto
oc login https://api.openshift.example.com:6443 --token=<TOKEN>
oc whoami
oc project <nombre>
oc status
`
Gestión de proyectos y recursos
oc new-project mi-app
oc get projects
oc delete project mi-app
Pods, deployments y servicios
oc get pods
oc describe pod <pod>
oc logs <pod>
oc get svc
oc get routes
Creación rápida de recursos
oc new-app <imagen> --name=mi-app
oc expose svc/mi-app
oc get route mi-app
Builds e imágenes
oc new-build <repo-git> --strategy=docker --name=mi-build
oc start-build mi-build --follow
oc get build
oc get imagestreams
⚙️ Administración y configuración
Escalado
oc scale deployment/mi-app --replicas=3
oc autoscale dc/mi-app --min=2 --max=5 --cpu-percent=80
Actualizaciones y rollback
oc rollout status dc/mi-app
oc rollout undo dc/mi-app
Variables de entorno
oc set env deployment/mi-app VAR1=valor
oc set env dc/mi-app --list
Montaje de volúmenes
oc set volume dc/mi-app --add --name=vol1 --type=persistentVolumeClaim --claim-name=mi-pvc --mount-path=/data
🧰 Gestión avanzada
RBAC
oc get rolebindings
oc adm policy add-role-to-user edit usuario -n mi-app
oc adm policy add-cluster-role-to-user cluster-admin admin
Seguridad (SCC)
oc get scc
oc describe scc restricted
oc adm policy add-scc-to-user anyuid usuario
Networking
oc get routes
oc expose svc/mi-servicio
oc get networkpolicy
oc describe networkpolicy
Logs y depuración
oc logs -f deployment/mi-app
oc rsh <pod>
oc exec <pod> -- ls /app
oc debug node/<nodo>
🧩 Helm y Templates
Helm
helm repo add openshift https://charts.openshift.io/
helm install mi-chart openshift/mi-app
helm list
helm uninstall mi-chart
Templates
oc get templates -n openshift
oc process -f template.yaml -p NOMBRE=valor | oc apply -f -
🔄 GitOps y CI/CD
Tekton
oc get pipelines
oc get pipelineruns
oc logs -f pipelinerun/<nombre>
Argo CD
argocd login <server>
argocd app list
argocd app sync mi-app
Jenkins
oc new-app jenkins-ephemeral
oc logs dc/jenkins
📈 Observabilidad y Monitoreo
oc get pods -n openshift-monitoring
oc logs prometheus-k8s-0 -n openshift-monitoring
oc get routes -n openshift-monitoring
- Prometheus: métricas de clúster y aplicaciones.
- Grafana: dashboards de visualización.
- Alertmanager: alertas configurables.
- EFK Stack: Elasticsearch + Fluentd + Kibana para logs.
- Jaeger / Kiali: tracing y visualización de tráfico en Service Mesh.
☁️ Multi-Cloud y Edge
- IPI (Installer Provisioned Infrastructure): instalación automatizada (AWS, GCP, Azure).
- UPI (User Provisioned Infrastructure): instalación manual con control total.
- OpenShift Edge: despliegue en ubicaciones remotas, con recursos limitados.
- Cluster Federation: gestión de múltiples clústeres con OpenShift Cluster Manager.
🧱 Infraestructura como Código
# Aplicar configuración declarativa
oc apply -f deployment.yaml
# Ver diferencias
oc diff -f deployment.yaml
# Eliminar recurso
oc delete -f deployment.yaml
- Integración con GitOps (Argo CD / Flux).
- Declarar infra con Terraform, Ansible o Kustomize.
- Control total del estado deseado de la plataforma y las apps.
🧩 Troubleshooting rápido
| Situación | Comando útil |
|---|---|
| Pod no inicia | oc describe pod <pod> |
| Error de build | oc logs build/<build> |
| Fallo de permisos | oc auth can-i <acción> <recurso> |
| Nodo con problemas | oc get nodes, oc describe node <nodo> |
| Resetear proyecto | oc delete all --all -n <namespace> |
📚 Recursos oficiales
💡 Consejo final
OpenShift combina la potencia de Kubernetes con herramientas integradas para CI/CD, seguridad, y observabilidad. Dominar la CLI
oc, las políticas de seguridad y las pipelines declarativas es clave para aprovechar su potencial completo en entornos empresariales y cloud híbridos.
OpenShift (temas avanzados complementarios)
- SRE
- Zero Trust
- Autoscaling
- Operators
- API Gateway
- Policy as Code
- Compliance
- Serverless
- Quarkus
- Knative
- Backup y recuperación
- Cost Optimization
🔐 Seguridad avanzada y Zero Trust
Zero Trust en OpenShift
- Implementa una seguridad por capas, donde ningún componente se asume confiable por defecto.
- Las políticas de red y RBAC se configuran para permitir solo el tráfico explícitamente autorizado.
- Se recomienda combinar:
- Network Policies + SCC (aislamiento de pods).
- Autenticación federada vía OAuth, LDAP o SSO.
- Módulos de auditoría de eventos (
oc adm top events).
Integración con Policy as Code
- OpenShift puede integrarse con OPA (Open Policy Agent) y Gatekeeper para validar configuraciones mediante políticas declarativas.
- Ejemplo: evitar despliegues que usen contenedores privilegiados o sin límites de recursos.
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: K8sPSPPrivilegedContainer
metadata:
name: no-privileged-containers
spec:
match:
kinds:
- apiGroups: [""]
kinds: ["Pod"]
`
⚡ Serverless y Escalado Dinámico
Knative y OpenShift Serverless
- OpenShift soporta Knative, permitiendo desplegar funciones y servicios que se escalan automáticamente según demanda.
- Ideal para cargas de trabajo event-driven y microservicios ligeros.
Ventajas
- Autoescalado a 0 cuando no hay tráfico.
- Integración con eventos (Kafka, CloudEvents, HTTP triggers).
- Compatible con pipelines CI/CD.
oc get ksvc
oc describe ksvc mi-funcion
🧠 Operators y Extensibilidad
Qué son los Operators
- Los Operators amplían Kubernetes/OpenShift con lógica de gestión automática para aplicaciones complejas.
- Basados en CRDs (Custom Resource Definitions) y controladores en Go o Ansible.
Tipos de Operators
- Community Operators: mantenidos por la comunidad (en OperatorHub.io).
- Certified Operators: validados por Red Hat.
- Custom Operators: creados internamente para tareas específicas.
Ejemplo de uso
- Base de datos PostgreSQL con operator que gestiona backups, escalado y actualizaciones.
oc get operators
oc get crd | grep postgres
oc describe csv postgresql-operator.v5.3.0
🛡️ Compliance y Auditoría
OpenShift Compliance Operator
-
Permite escanear el clúster según normas de cumplimiento:
- CIS Benchmarks
- NIST 800-53
- PCI-DSS
-
Genera reportes automáticos con hallazgos y recomendaciones.
oc get compliancescans
oc describe compliancesuite nist-suite
Auditoría de eventos
- Los eventos se almacenan en
/var/log/audit/audit.log. - Puede integrarse con herramientas SIEM (Splunk, ELK) para correlación de incidentes.
- Uso del comando
oc adm node-logspara inspeccionar nodos.
🌍 API Management y Gateways
OpenShift API Gateway (3scale)
- Basado en Red Hat 3scale, permite gestionar APIs con control de acceso, métricas y cuotas.
-
Ofrece:
- Autenticación OAuth2 y API Keys.
- Rate limiting y políticas de uso.
- Portal de desarrolladores con documentación automática (Swagger/OpenAPI).
- Se integra con pipelines y microservicios expuestos como Routes o Istio Gateways.
Ejemplo de integración
oc get apiproducts
oc describe apiproduct mi-api
💾 Backup, Restore y Disaster Recovery
OADP (OpenShift API for Data Protection)
-
Gestiona copias de seguridad y restauración de:
- Recursos de Kubernetes (YAML).
- Volúmenes persistentes (PV/PVC).
-
Compatible con Velero, Restic y S3 (AWS, MinIO, Ceph).
Comandos clave
oc get backupstoragelocations
oc get backups
oc get restores
Ejemplo
oc create -f backup.yaml
oc get backup -w
oc create -f restore.yaml
💰 Cost Optimization y Resource Management
Etiquetado y cuotas
- Utilizar labels y annotations para rastrear consumo por proyecto o equipo.
- Implementar ResourceQuotas y LimitRanges para evitar desperdicio de CPU/RAM.
- Monitorizar consumo con Prometheus y métricas de proyecto.
oc describe resourcequota
oc adm top pods -n mi-proyecto
oc adm top nodes
Estrategias
- Automatizar apagado de entornos no productivos.
- Usar nodos spot/preemptibles (en nubes públicas).
- Adoptar containers livianos (Alpine, UBI minimal).
🚀 Integración con Red Hat Ecosystem
- Quarkus: framework Java optimizado para contenedores y OpenShift.
- RHEL CoreOS: sistema operativo inmutable usado en nodos OpenShift.
- Red Hat Advanced Cluster Management (ACM): permite gestionar múltiples clústeres OpenShift desde una sola consola.
- Red Hat Ansible Automation Platform: automatiza despliegues, parches y operaciones Day 2.
- Red Hat OpenShift Data Foundation (ODF): almacenamiento definido por software nativo para OpenShift.
🧩 Observabilidad extendida
Kiali + Jaeger + Grafana
- Kiali: visualiza dependencias y métricas de microservicios en el mesh.
- Jaeger: traza peticiones entre servicios.
- Grafana: muestra dashboards personalizados de rendimiento y capacidad.
Logs de Auditoría Avanzados
oc get pods -n openshift-logging
oc logs elasticsearch-<id> -n openshift-logging
- Integración con CloudWatch, Stackdriver o Azure Monitor para entornos híbridos.
⚙️ Performance y Tuning del Clúster
Node tuning
- Ajustes mediante el Node Tuning Operator para cargas sensibles a latencia o rendimiento.
- Permite definir perfiles de CPU pinning, HugePages o IRQ balancing.
oc get tunedprofiles
oc describe tuned
Scheduler y afinidad
- Uso de affinity/anti-affinity y tolerations para distribuir pods según tipo de carga o hardware.
- Ejemplo: separar cargas críticas de pods de desarrollo.
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- topologyKey: "kubernetes.io/hostname"
🧭 Roadmap Tecnológico (2025+)
- eBPF en OpenShift: inspección avanzada de red y seguridad.
- Edge clusters livianos (MicroShift).
- Integración con AI/ML pipelines (OpenShift AI).
- Runtime Security: detección de amenazas con Falco/Sysdig.
- Infraestructura multi-runtime: soporte extendido para cri-o, Kata Containers, y WebAssembly (Wasm).
🧠 Recomendaciones finales
- Adoptar mentalidad SRE para medir confiabilidad y rendimiento.
- Implementar Zero Trust Networking desde diseño.
- Usar GitOps + IaC como base operativa de despliegues.
- Automatizar monitoreo y remediación.
- Documentar flujos CI/CD, políticas y dependencias críticas.
- Aprovechar Operators y Service Mesh para lograr autosuficiencia y resiliencia a gran escala.
📚 Recursos útiles (avanzados)
- Red Hat OpenShift Serverless
- Operator SDK
- Compliance Operator Docs
- Red Hat Advanced Cluster Management
- Node Tuning Operator
- OpenShift API Management (3scale)
💬 Esta nota cubre los aspectos avanzados y emergentes de OpenShift, esenciales para arquitectos, SREs y administradores que buscan optimizar, asegurar y escalar entornos híbridos y multinube.
¿Te gusta este contenido? Suscríbete vía RSS