Proyecto | Kubernetes: Orquestación de contenedores desde cero hasta Minikube | Bastián Alquinta

Comparte
Proyecto Kubernetes: Orquestación de contenedores desde cero hasta Minikube Bastián Alquinta

¿De qué trata el proyecto?

Kubernetes: Orquestación de contenedores desde cero hasta Minikube, es un proyecto desarrollado por Simón Rincón, que aborda la formación e implementación práctica de Kubernetes, explicando sus fundamentos, arquitectura y beneficios. A través de una demostración técnica con Minikube como entorno local, el proyecto muestra cómo Kubernetes permite orquestar contenedores Docker de forma eficiente, escalable y resiliente, aplicando conceptos clave como pods, servicios, deployments e Ingress, todo gestionado mediante archivos YAML como infraestructura como código.

¿Cuál problema viene a resolver?

En entornos modernos, las aplicaciones deben ser:

  1. Escalables ante picos de tráfico.
  2. Resilientes ante fallas de infraestructura.
  3. Desplegables de forma continua y segura.

 

Sin un orquestador como Kubernetes, los contenedores Docker por sí solos no garantizan alta disponibilidad, escalabilidad ni actualizaciones sin downtime. Las soluciones tradicionales basadas en máquinas virtuales también resultan rígidas, costosas y poco automatizables.

¿Cuál es la solución?

El proyecto propone el uso de Kubernetes como solución de orquestación de contenedores, destacando sus beneficios:

  • Despliegue de múltiples pods que se autorrecuperan ante fallos.
  • Servicios internos que permiten comunicación estable entre pods.
  • Ingress Controller para exponer múltiples servicios en un solo endpoint.
  • Archivos YAML como infraestructura como código para gestionar configuraciones y versiones.
  • Rolling updates y reversión de despliegues con cero interrupciones.

 

Todo esto permite construir entornos modulares, dinámicos y preparados para producción, incluso desde entornos locales.

¿Cómo fue construido?

Herramientas y tecnologías utilizadas:

  • Docker: Para contenerizar las aplicaciones frontend y backend.
  • Kubernetes (Minikube): Cluster local para desarrollo y pruebas.
  • WSL (Windows Subsystem for Linux): Para ejecutar Minikube en Windows.
  • YAML: Archivos declarativos para configurar deployments, services e ingress.
  • Ingress + proxy inverso: Para exponer múltiples rutas desde el navegador local.
  • Kubectl: Para gestionar el cluster y observar comportamiento en tiempo real.

Arquitectura práctica:

  • 2 servicios desplegados (frontend y backend), cada uno con 2 réplicas.
  • Comunicación entre servicios definida vía Service y ClusterIP.
  • Balanceo de carga automático entre pods.
  • Observación de auto-recuperación cuando un pod es eliminado.
  • Simulación de actualizaciones progresivas (rolling updates).

Retos y aprendizajes:

  • Configuración inicial de Ingress en Minikube.
  • Exposición local de servicios con DNS personalizado.
  • Limitaciones del autoescalado horizontal (HPA) en Minikube.
  • Ventajas de usar EKS (Amazon Elastic Kubernetes Service) para producción:
  • Portabilidad, autoscaling, uso de nodos spot y facilidad de gestión.