Práctica · Módulo 07 — Kubernetes: conceptos fundamentales · Nivel principiante → intermedio
¡Inténtalo primero solo! Realiza el proyecto con este único enunciado. La corrección (manifiestos YAML comentados + comandos
kubectl) está en el README.md, plegada. No la abras hasta haberlo intentado.
No tienes que instalar nada más: Docker Desktop incluye un clúster Kubernetes integrado.
kubectl get nodesdocker-desktop en estado Ready.(Alternativas posibles:
minikube startokind create cluster. El proyecto también funciona, cargando la imagen — ver 02-COMMANDES.md.)
Desplegar una pequeña aplicación web en Kubernetes con varias réplicas (Pods), exponerla mediante un Service y practicar los gestos del día a día: scaling, rolling update, rollback y autorreparación.
Al recargar la página, cambia el nombre del Pod que responde: prueba de que el Service reparte la carga entre los Pods.
/, muestre su hostname = el nombre del Pod).demo-k8s:1.0.Deployment con 3 réplicas, labels coherentes (app: demo-web) y una sonda (readinessProbe / livenessProbe) en /health.kubectl get pods, kubectl describe pod ..., kubectl logs ...).Service de tipo NodePort (puerto 30080) que apunte a los Pods mediante el selector de labels.http://localhost:30080 y recarga: comprueba que cambia el nombre del Pod.ConfigMap que contenga APP_TITLE, APP_VERSION y BG_COLOR, e inyéctalo en los Pods (envFrom).BG_COLOR, vuelve a aplicar el ConfigMap, reinicia los Pods (kubectl rollout restart) y observa el nuevo color.kubectl scale) y luego vuelve a 3.APP_VERSION, aplica y sigue el despliegue progresivo (kubectl rollout status).kubectl rollout undo).kubectl delete pod ...) y comprueba que Kubernetes crea otro solo.app/ (código + Dockerfile) y la carpeta k8s/ (configmap.yaml, deployment.yaml, service.yaml).curl).kubectl get pods que muestre 3/3 Pods Running.kubectl rollout status durante un rolling update.| Criterio | Esperado |
|---|---|
| Imagen construida | demo-k8s:1.0 disponible para el clúster |
| Deployment | 3 Pods Running, sondas OK |
| Service | Página accesible en localhost:30080, el nombre del Pod cambia |
| ConfigMap | El cambio de BG_COLOR es visible tras volver a aplicar |
| Ciclo de vida | Scaling, rolling update, rollback y autorreparación demostrados |
¿Bloqueado? El README.md contiene la corrección completa (manifiestos comentados + comandos), y la chuleta de comandos lista todo el
kubectlútil — a consultar después de haberlo intentado.