Durante la recuperación de varios clústeres OKD tras un apagón, encontré imágenes que CRI-O daba por presentes pero que el nodo no podía utilizar. En uno de los nodos, volver a descargar una imagen por su digest permitió recuperar OVN y Multus. La intervención dejó una pregunta para la siguiente recuperación: ¿qué pasa si varios nodos necesitan volver a descargar las mismas imágenes a la vez?
Leer más: Después del apagón: un proxy caché de imágenes para OpenShift con Zot
Al probar peticiones HTTP con cuerpo en el servidor de RealWorld, el problema apareció en un sitio inesperado. El Worker podía leer el cuerpo desde la conexión TCP, pero el traspaso de los Bytes al Actor que gestionaba la aplicación destapó un fallo en el runtime de Protos. Corregirlo formó parte de construir el servidor. Ese era el tipo de problema que quería encontrar al llevar el lenguaje más allá de los ejemplos pequeños.
Protos es un lenguaje experimental basado en prototipos que estoy desarrollando sobre GraalVM y Truffle. Para probarlo elegí RealWorld, también conocido como Conduit, una aplicación de publicación de artículos con una API común que permite combinar distintos frontends y backends. Mi implementación cubre las 19 rutas de la API, desde el registro y el inicio de sesión hasta los perfiles, los artículos, el feed, los comentarios, los seguimientos y los favoritos. Proyecto RealWorld · Código del backend en Protos
Leer más: Construir RealWorld en Protos: HTTP, Actors y autenticación en un lenguaje experimental
Cuando construyes imágenes con frecuencia, el almacenamiento de los contenedores puede llenar el disco del sistema sin que resulte evidente. En mi entorno de desarrollo de Protos, basado en GraalVM y Truffle, utilizo Podman rootless para varios devcontainers de VS Code y para construir imágenes de distintas versiones de GraalVM. Llegó un momento en que / estaba al 97 %, mientras /datos tenía 386 GB libres.
El objetivo era trasladar los datos de Podman al segundo disco sin perder imágenes, contenedores ni volúmenes. La copia fue sencilla; lo interesante llegó cuando Podman rechazó el nuevo graphroot porque su base de datos seguía recordando la ruta anterior. Este es el procedimiento real, con los errores y las cifras medidas.
Leer más: Cómo migré el almacenamiento de Podman a otro disco sin perder contenedores
Una incidencia real en OKD: procesos bloqueados, agentes huérfanos, cgroups, pipelines que no deben reanudarse y un problema inesperado al retirar las protecciones de recuperación.
Leer más: Cuando Jenkins casi se lleva por delante un worker de Kubernetes
La migración de Portainer Agent a Edge Agent Standard en varios clústeres OpenShift/OKD reveló una cadena de problemas independientes: permisos del sistema de archivos, campos inmutables de servicios Kubernetes, resolución DNS, credenciales incompletas y automatización del despliegue. Esta guía documenta los síntomas, las causas confirmadas y las correcciones aplicadas.
Nota: caso técnico real anonimizado. Se han omitido nombres de organizaciones, clústeres, nodos, dominios, direcciones IP, identificadores y credenciales. Los ejemplos utilizan nombres genéricos y deben adaptarse al entorno antes de ejecutar comandos.