ImageStream
Resumen de una línea
Abstracción de OpenShift que gestiona imágenes de contenedores con referencias inmutables (digests) y triggers automáticos para redeployes.
Definición
Un ImageStream es un recurso de OpenShift que proporciona una abstracción para hacer referencia a imágenes de contenedores, permitiendo crear y actualizar imágenes de forma continua sin romper los despliegues que las usan.
Características Principales
Qué es realmente
- No es una imagen: Es un puntero a imágenes reales
- Contiene tags: Cada tag apunta a una imagen específica (por digest, no por nombre)
- Uso de digests: Identifica de forma única una versión (hash SHA-256 de la imagen)
- Abstracción: Desvincula los despliegues del registro real de imágenes
Origen de las imágenes
- Registro interno: OpenShift (almacenamiento centralizado del clúster)
- Registro externo: Docker Hub, Quay, repositorio privado
- BuildConfig: Creadas automáticamente por construcciones
Ventajas
| Ventaja | Descripción |
|---|---|
| Actualizaciones seguras | Tag sigue apuntando a versión conocida, no cambia si origen cambia |
| Triggers automáticos | Despliegues se actualizan cuando ImageStream se actualiza |
| Gestión de versiones | Tags múltiples: latest, stable, v1.0, etc. |
| Disponibilidad garantizada | Si imagen del repositorio desaparece, ImageStream mantiene copia local |
| Acceso controlado | Gestión de permisos centralizada |
Casos de Uso
1. Actualización Automática
ImageStream nginx (tag: latest)
↓
Apunta a nginx:1.20.2 (digest: sha256:abc123...)
↓
Deployment usa ImageStream:latest
↓
Si ImageStream → nginx:1.21.0 automáticamente
→ Trigger redeploy
2. S2I (Source to Image)
BuildConfig + Git
↓
Crea ImageStream automáticamente
↓
Deployment ya apunta a ImageStream
↓
Nuevo push a Git → nuevo build → nuevo ImageStream → redeploy automático
ImageStreamTag
Recurso individual que representa una etiqueta específica de un ImageStream:
- Nombre:
imagestream-name:tag - Apunta a: Digest (hash único) de una imagen
- Permite: Referencias precisas a versiones
Ejemplo:
ImageStream "nginx"
├── Tag "latest" → Digest sha256:abc123...
├── Tag "stable" → Digest sha256:def456...
└── Tag "v1.20" → Digest sha256:ghi789...
Creación de ImageStreams
Automático (con oc new-app)
oc new-app bitnami/nginx --name=web
# Crea automáticamente ImageStream "web"Manual desde registro externo
oc import-image myapp:latest --from=quay.io/myorg/myapp:latestDesde BuildConfig
Se crean automáticamente después de cada build exitoso
Gestión
Ver ImageStreams
oc get is
oc describe is nginxVer tags disponibles
oc describe is nginx
# Muestra todos los tags y digestsActualizar/cambiar tags
oc tag imagestream:v1.0 imagestream:latest
# Ahora "latest" apunta al mismo digest que "v1.0"Relaciones
Conecta con
- Parte de: OpenShift (abstracción propia)
- Producido por: Build (BuildConfig en OpenShift) (BuildConfig crea ImageStreams)
- Usado por: Deployment (despliegues referencian ImageStreams)
- Complementa: Kubernetes (abstracción propia de OpenShift)