OpenShift como Distribución de Kubernetes
Resumen
Despliegue de aplicaciones en OpenShift usando recursos Kubernetes: Pods, ReplicaSets, Deployments. Cómo OpenShift hereda y amplía Kubernetes.
Conceptos Clave
Recursos Kubernetes en OpenShift
OpenShift mantiene compatibilidad total con recursos K8s:
- Pod: Unidad mínima (1+ contenedores)
- ReplicaSet: Replica sets, tolerancia a fallos
- Deployment: Despliegues declarativos, rolling updates
Pod
- Definición: Uno o más contenedores en mismo host
- Aislamiento: Comparten red, filesystem propio
- Efímeros: Pueden destruirse en cualquier momento
- Uso: Casi nunca crean Pods directamente
ReplicaSet
Propósito: Mantener número de réplicas correcto
- Tolerancia a fallos: Si Pod cae, crea nuevo
- Escalabilidad: Definir replicas=N
- Balanceo: Distribuir carga entre replicas
- Labels/Selectors: Identificar qué Pods controlar
Casi nunca se usan directamente (usar Deployment)
Deployment
Propósito: Orquestación de aplicaciones
Características:
- Define ReplicaSets automáticamente
- Rolling updates: Actualizar sin downtime
- Rollback: Volver a versión anterior si falla
- Control de versiones: Histórico de ReplicaSets
- Pauses/resuming: Actualización gradual
Ejemplo:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- image: myapp:1.0
name: appDespliegues desde Consola Web
- Developer view: Topology (visual)
- Administrator view: Workloads → Deployments
- Import YAML: +Add → Import YAML
Pods Privilegiados
- Algunos contenedores necesitan acceso root
- OpenShift restringe por defecto
- Requiere SecurityContext especial
Actualización de Deployments
Rolling update automático:
Versión anterior (replicas=3)
↓ (termina 1 Pod, crea nuevo con v2)
2x v1.0 + 1x v2.0
↓ (termina otro v1.0, crea v2.0)
1x v1.0 + 2x v2.0
↓ (termina último v1.0)
3x v2.0 ✓
Rollout y Rollback:
oc rollout history deployment/myapp # Ver versiones
oc rollout undo deployment/myapp # Volver anteriorRelaciones
Conecta con
- Heredado de: Kubernetes
- Parte de: OpenShift
- Relacionado: Service (acceso a Pods)