🎯 Objetivo: Aprender sobre kunernetes, instalar un entorno de trabajo y crear primer pod.
🧠¿Qué es Kubernetes?
Kubernetes (abreviado como K8s) es una plataforma de código abierto desarrollada inicialmente por Google y ahora mantenida por la Cloud Native Computing Foundation (CNCF), que sirve para automatizar el despliegue, la gestión, el escalado y la organización de contenedores. En otras palabras: Kubernetes es un orquestador de contenedores.
Fue diseñado para ayudarte a administrar aplicaciones que están empaquetadas en contenedores (como los que creas con Docker), especialmente cuando estas aplicaciones se ejecutan en múltiples máquinas o servidores (llamados nodos).
🎯 ¿Para qué se usa Kubernetes?
- Orquestar contenedores: Kubernetes gestiona automáticamente dónde y cuándo se ejecutan los contenedores, asegurándose de que siempre estén funcionando y distribuidos correctamente en el clúster.
- Escalabilidad automática: Kubernetes puede escalar automáticamente el número de réplicas de una aplicación (por ejemplo, de 3 a 10 instancias) dependiendo del uso de recursos como CPU o memoria.
- Alta disponibilidad: Si uno de tus servidores falla, Kubernetes puede reiniciar automáticamente los contenedores en otro nodo disponible, asegurando que la aplicación siempre esté funcionando.
- Despliegues sin interrupciones: Permite actualizaciones de versiones de forma progresiva y segura (por ejemplo, con blue-green deployment o rolling updates), sin necesidad de parar el servicio.
- Balanceo de carga: Distribuye el tráfico entre las instancias de tu aplicación de forma automática, garantizando que no se sobrecargue ninguna.
- Gestión de configuración y secretos: Kubernetes tiene recursos como ConfigMaps y Secrets que te permiten manejar configuraciones sensibles (como contraseñas, tokens, etc.) sin tener que “quemarlos” en el código fuente.
🏗️ Arquitectura de Kubernetes
Se ha creado el post Clústeres de Kubernetes donde explico a detalle el tema, dejo a continuación una imagen donde se se muestra un cluster de kubernetes.

Instalación local
- Realizamos el Paso a paso para Instalar minikube, con esto ya tenemos un entorno de trabajo en nuestras maquinas locales y poder realizar la ejecución de los ejercicios propuestos en esta guía de kubernetes. Revisa el listado de comandos de minikube puede servir de mucha ayuda.
- Realizamos la instalación de kubectl que es la herramienta de línea de comandos oficial para interactuar con Kubernetes.
- Muy importante revisar el Contexto en kubectl por si tenemos varios cluster de kubernetes y debemos seleccionar uno en especifico.
Crear tu primer Pod
- Realizamos la explicación de Crear tu primer Pod en Kubernetes con Minikube, en este post veras tres formas de crear un pod.
- Revisa una guía de introducción a los archivos yaml para crear los distintos recursos de kubernetes.
- Revisa las diferencias entre ReplicationController y ReplicaSet en Kubernetes
Services
- Aprende de ClusterIP, NodePort, LoadBalance y expone tu pod como servicio, desplega Nginx y accede desde el navegador.
- Configura un tunnel con minikube tunnel y docker para exponer los servicios loadbalancer
🎯 Objetivo: Aprender los recursos clave: Deployments, ConfigMaps, Secrets, Volumes.
Deployments
- Aprender que es un deployment en kubernetes y como crear uno manualmente.
- Crea deployment en kubernetes y aprende a usar el Rollout y Rollback.
Namespaces
- Crear y usar namespaces para aislar los entornos en donde se crearan los pods y services.
ConfigMaps y Secrets
- Variables de entorno
- Montaje como archivos
Volúmenes
- Volúmenes efímeros
- Introducción a PV y PVC
Probes y Labels
- Liveness & Readiness Probes
- Selectores y etiquetas
Proyecto
- Desplegar una app Node.js o Flask con ConfigMap, Secret, PVC y Probes
🎯 Objetivo: Escalar aplicaciones, crear reglas RBAC y explorar networking.
HPA (Horizontal Pod Autoscaler)
- Autoescalado basado en CPU
- Simulación de carga
RBAC
- Roles, RoleBinding y ServiceAccounts
- Seguridad básica por usuario
Network Policies
- Aislar pods
- Crear reglas de comunicación
Logs y métricas
kubectl logs
kubectl top pods
Helm
- Instalación y uso básico
- Instalar una app: por ejemplo, WordPress o Prometheus
Proyecto
-
Desplegar una aplicación con escalado automático y Helm
🎯 Objetivo: Preparar tu entorno en la nube y usar Ingress Controllers.
Clúster en la nube
- Crear clúster en GKE (puede usarse el free tier)
- Conectarte vía
kubectl
Ingress Controller
- Instalar NGINX Ingress Controller
- Crear recurso Ingress
TLS con Cert-Manager
-
Automatizar certificados TLS
StatefulSets y DaemonSets
- Stateful apps (ej: MongoDB, Redis)
- Deploy de Daemon (como log collectors)
Proyecto
-
Desplegar app con Ingress, HTTPS y almacenamiento persistente
🎯 Objetivo: Monitorear y automatizar el despliegue de tus aplicaciones.
Prometheus + Grafana
- Instalar con Helm
- Visualizar métricas
Logs centralizados
- Instalar Loki o Fluentd
- Consultar logs por app
Tracing con Jaeger
-
Trazabilidad de microservicios
CI/CD
- Usar GitHub Actions para despliegue a Kubernetes
- Pipeline de build, push, deploy
Proyecto
-
Crear una pipeline completa para una app
🎯 Objetivo: Consolidar conceptos, buenas prácticas y certificaciones.
Repaso general y práctica
-
Comandos
kubectl
, YAML, Helm
Práctica en Katacoda o Play with Kubernetes
Estudio CKA/CKAD
-
Simuladores como killer.sh
Buenas prácticas en producción
-
Seguridad, backup (Velero), auditoría
Proyecto final
-
Despliegue completo de una aplicación real con Ingress, TLS, HPA, monitoring y CI/CD