ImageStreams: Gestión de Imágenes
Resumen
Profundización en ImageStreams: cómo gestionar imágenes en OpenShift, referencias inmutables (digests), etiquetado, actualizaciones automáticas, y triggers de redeploy.
Conceptos Clave
ImageStream (Repaso)
- No es imagen: Es referencia/puntero
- Apunta a digest: Hash único (SHA-256) de imagen
- Permite tags: latest, stable, v1.0, etc.
- Abstracción: Desvincula de registry real
Ventajas Core
- Seguridad: Si imagen en Docker Hub actualiza, IS mantiene versión conocida
- Triggers: Redeploy automático cuando ImageStream cambia
- Gestión: Tags centralizados en cluster
- Control: Acceso/permisos a imágenes
Registro Interno vs Externo
- Interno: OpenShift (almacenamiento centralizado)
- Externo: Docker Hub, Quay.io, registro privado
Creación de ImageStreams
Automática (oc new-app)
oc new-app bitnami/nginx --name=web
# Automáticamente crea ImageStream "web"Manual desde Registro Externo
oc import-image myapp:latest \
--from=quay.io/myorg/myapp:latest \
--confirmDesde BuildConfig
# Cada build exitoso:
# BuildConfig → Build → ImageStream actualizadoImageStreamTag
Cada tag individual es un recurso:
ImageStream "nginx"
├── Tag "latest" → Digest sha256:abc123
├── Tag "stable" → Digest sha256:def456
└── Tag "v1.20" → Digest sha256:ghi789
Comando:
oc describe is nginx
# Muestra todos los tags y digestsEtiquetado (Tagging)
# Crear tag nuevo apuntando a otro tag
oc tag nginx:v1.20 nginx:latest
# Ahora "latest" apunta a mismo digest que "v1.20"
# Tag apuntando a imagen externa
oc tag myregistry/myapp:v2.0 myapp:latestActualizaciones Automáticas
ImageStream puede monitorear imagen externa:
oc import-image myapp:latest \
--from=quay.io/myorg/myapp:latest \
--scheduled=true # Chequear periódicamenteWorkflow:
Imagen externa se actualiza
↓
OpenShift detecta cambio (periódicamente)
↓
ImageStream apunta a nuevo digest
↓
Trigger en Deployment (si configurado)
↓
Redeploy automático
Triggers
ImageStream trigger en Deployment:
spec:
triggers:
- type: ImageChange
imageChangeParams:
automatic: true
containerNames:
- mycontainer
from:
kind: ImageStreamTag
name: myapp:latestResultado: Si ImageStream:latest cambia → redeploy automático
Gestión desde Consola Web
- Administrator view → Image Streams
- Ver registros internos
- Importar imágenes externas
- Gestionar tags
- Ver cuáles Pods usan qué imagen
Relaciones
Conecta con
- Parte de: OpenShift
- Produce: Build (BuildConfig en OpenShift) (BuildConfig crea IS)
- Usa: Deployment (referencian IS)
- Alternativa: Referencias simples a Docker registros