POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Del CrashLoopBackOff a Hello World: Desplegando Flask en GKE

Del CrashLoopBackOff a Hello World: Desplegando Flask en GKE

Publicado el 17/08/2025

Resumen del proyecto: desplegar una aplicación Python Flask que saluda a los usuarios usando Kubernetes en Google Kubernetes Engine GKE. Tech stack: Flask, Docker, Kubernetes, Google Kubernetes Engine. Objetivo: poner en producción una app simple que responda Hello mi nombre es Gerald y permita enviar un nombre para que la app responda con un saludo personalizado.

Acerca de Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida. Ofrecemos soluciones de inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Diseñamos aplicaciones empresariales, integraciones seguras y consultoría para acelerar la transformación digital.

Paso 1 Aplicación Flask Resumen: la app define una ruta raiz que devuelve Hello, mi nombre es Gerald. What is your name y un endpoint POST para recibir el campo name desde un formulario y devolver Hello seguido del nombre. En modo producción la app debe ejecutarse en 0.0.0.0 y puerto 80 para que Kubernetes pueda enrutar el tráfico correctamente.

Paso 2 Dockerizar la app Dockerfile esencial: FROM python:3.12-slim WORKDIR /app COPY requirements.txt requirements.txt RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 80 CMD python app.py

Comandos para construir y subir imagen al Artifact Registry: docker build -t africa-south1-docker.pkg.dev/k8s-project-468723/my-docker-repo/my-python-app:v1 . docker push africa-south1-docker.pkg.dev/k8s-project-468723/my-docker-repo/my-python-app:v1

Paso 3 Despliegue en Kubernetes Despliegue básico: crear un Deployment con replicas 2 que use la imagen almacenada en Artifact Registry y que exponga el puerto 80 del contenedor. Aplicar el manifiesto con kubectl apply -f deployment.yaml y crear un Service tipo LoadBalancer con kubectl expose deployment my-python-app --type=LoadBalancer --port 80 --target-port 80

Depuración CrashLoopBackOff Primer síntoma: los pods entraban en estado CrashLoopBackOff al levantar. Comprobación rápida: kubectl get pods -l app=my-python-app y revisar logs con kubectl logs nombre-del-pod Para este caso el log indicaba que no se encontraba el archivo app.py en /app y además la aplicación estaba corriendo en el puerto 5000 mientras el Service esperaba respuestas en el puerto 80.

Correcciones aplicadas 1 Renombrar archivo o ajustar CMD Si el archivo principal se llamaba gerald.py la solución fue renombrarlo a app.py o cambiar la instrucción CMD en Dockerfile para arrancar el archivo correcto. 2 Alinear puertos Cambiar Flask para escuchar en el puerto 80 o ajustar la exposición del contenedor. En este proyecto se optó por ejecutar Flask en el puerto 80 y mantener EXPOSE 80 en el Dockerfile.

Resultado final Tras corregir el nombre del fichero y el puerto la aplicación respondió correctamente. Abrir la IP externa del LoadBalancer en el navegador mostraba el saludo Hello, mi nombre es Gerald. What is your name y el endpoint POST /greet respondía Hello seguido del nombre enviado desde el formulario.

Lecciones aprendidas Coincidir puerto del contenedor y targetPort del Service es crítico. Revisar logs de pods con kubectl logs es la forma más rápida de identificar errores como archivos ausentes o excepciones. Mantener coherencia entre nombres de archivos en el repositorio y comandos de arranque en Dockerfile evita errores de CrashLoopBackOff. Probar localmente antes de subir a Kubernetes permite iterar más rápido y reducir ciclos de depuración en la nube.

Buenas prácticas adicionales Para proyectos empresariales y para servicios cloud AWS y Azure recomendamos integrar pipelines CI CD que verifiquen la imagen antes de desplegar, aplicar políticas de seguridad y escaneo de vulnerabilidades para ciberseguridad, y monitorizar con herramientas de observabilidad. Integrar soluciones de inteligencia artificial e inteligencia de negocio permite añadir valor a las aplicaciones a medida; por ejemplo agentes IA para atención automatizada y paneles con power bi para análisis.

Recursos y enlace al código completo El proyecto completo está disponible en GitHub en la siguiente URL https://github.com/gerald475/simple-python-app

Invitación Si alguna vez has luchado contra CrashLoopBackOff comparte tu experiencia en los comentarios y ayuda a la comunidad a depurar más rápido.

Sobre Q2BSTUDIO Q2BSTUDIO desarrolla software a medida, aplicaciones a medida y soluciones de inteligencia artificial para empresas. Somos especialistas en ciberseguridad, servicios cloud AWS y Azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Contacta con Q2BSTUDIO para acelerar tus proyectos con software de calidad, seguridad incorporada y capacidades de inteligencia artificial.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio