Skip to content

Docker Avanzado y Kubernetes (K3s)

  • Duración: 4 tardes (16 horas lectivas).
  • Modalidad: Online en directo / Presencial.
  • Público objetivo: Estudiantes y juniors que ya conocen las bases de Docker y necesitan dar el salto a la optimización de imágenes para producción y a los conceptos fundamentales de orquestación con Kubernetes usando K3s.

El Problema

Crear un contenedor básico para desarrollo local está bien, pero en producción surgen nuevos retos:

  • Imágenes gigantes de más de 1 GB que tardan minutos en desplegarse.
  • La necesidad de escalar aplicaciones cuando aumenta el tráfico.
  • Gestionar caídas automáticas, enrutamiento de tráfico y configuración en clusters.

Kubernetes es el estándar de la industria, pero su versión tradicional es demasiado pesada y compleja para empezar. K3s nos permite aprender y operar exactamente los mismos conceptos de Kubernetes de forma rápida, ligera y eficiente.


Temario Detallado (Tarde por Tarde)

Lunes: Multi-Stage Builds y Optimización Extrema

  • El problema de las imágenes de desarrollo en producción: Código fuente, SDKs y herramientas innecesarias en el contenedor final.
  • Patrón Multi-Stage Build: Separar la etapa de compilación (build) de la etapa de ejecución (runtime).
  • Elegir la imagen base adecuada: Comparativa entre imágenes Debian/Ubuntu, Alpine, Distroless y JREs ligeras.
  • Seguridad en contenedores: Ejecución con usuarios no privilegiados (USER nonroot), análisis de capas y limpieza de caché.
  • Ejercicio práctico: Reducir una imagen de aplicación (Java/Spring Boot o Node.js) de 800 MB a menos de 150 MB manteniendo la seguridad.

Martes: Redes Avanzadas en Docker y Registros Privados

  • Profundización en redes de Docker: Drivers bridge, host, none y redes personalizadas.
  • Inspección de tráfico: Diagnóstico de comunicación entre contenedores y resolución de problemas DNS internos.
  • Gestión de Registros de Imágenes: Crear y ejecutar un Registro Docker local/privado.
  • BuildKit y Caché Avanzada: Acelerar los tiempos de construcción de imágenes reutilizando capas de dependencias.
  • Ejercicio práctico: Configurar un registro privado local, construir una imagen optimizada con BuildKit y subirla al registro.

Miércoles: Introducción a Kubernetes con K3s

  • ¿Qué es Kubernetes y por qué K3s?: Ventajas de K3s como distribución ligera certificada por CNCF.
  • Instalación y arquitectura: Control Plane, Worker Nodes, k3s y la herramienta de control kubectl.
  • El objeto básico (Pod): Por qué Kubernetes no despliega contenedores directamente sino Pods.
  • Estrategia declarativa (YAML): Pasar de ejecutar comandos por consola a definir el estado deseado en archivos .yaml.
  • Ejercicio práctico: Desplegar un cluster local de K3s y lanzar los primeros Pods mediante manifiestos YAML.

Jueves: Despliegue, Escalado y Configuración en K3s

  • Gestión de réplicas y estado (Deployment): Escalado manual de Pods, sustitución automática ante fallos y actualizaciones sin caídas (rolling updates).
  • Exposición de servicios (Service): Tipos ClusterIP y NodePort para comunicación interna entre Pods.
  • Inyección de configuración (ConfigMap y Secret): Desacoplar variables de entorno, archivos de propiedades y contraseñas del código.
  • Ejercicio práctico: Desplegar una API escalada a 3 réplicas conectada a una base de datos, gestionando sus credenciales de forma segura con Secret.

Viernes: Ingress, Persistencia y Despliegue End-to-End

  • Enrutamiento HTTP/HTTPS (Ingress): Configurar el Ingress Controller de K3s (Traefik) para exponer servicios mediante dominios locales.
  • Persistencia en K3s: Introducción a PersistentVolume (PV) y PersistentVolumeClaim (PVC) usando Local Path Provisioner.
  • Salud de la aplicación: Configuración de LivenessProbe y ReadinessProbe para reiniciar Pods colgados.
  • Reto final: Desplegar en el cluster K3s una arquitectura completa (Frontend + Backend + Base de Datos) con persistencia, configuración externa y punto de entrada Ingress.

Lo que te llevas

  1. Habilidad para escribir Dockerfiles profesionales con Multi-Stage builds listos para producción.
  2. Dominio de los comandos y conceptos clave de Kubernetes (kubectl, Pods, Deployments, Services, Ingress).
  3. La capacidad de montar y operar tus propios clusters ligeros con K3s para tus proyectos personales o profesionales.

Consultar fechas y reservar plaza

Píldoras formativas de desarrollo software.