Práctica · Módulo 07 — Kubernetes: conceptos fundamentales · Nivel intermedio
¡Inténtalo primero solo! Realiza el proyecto con este único enunciado. La corrección (manifiestos comentados + comandos) está en el README.md, plegada. No la abras hasta haberlo intentado.
demo-k8s:1.0 ya construida (si no: docker build -t demo-k8s:1.0 ./app).Entender para qué sirve un Service y dominar los tres tipos principales:
Todo encima de un mismo Deployment: un solo lote de Pods, tres formas de exponerlos.
Los Pods son efímeros: nacen, mueren, cambian de IP. Por tanto no se puede contar con la IP de un Pod. Hace falta una dirección estable que reparta el tráfico hacia los Pods correctos: ese es el papel del Service, que encuentra sus Pods gracias a los labels.
demo-k8s:1.0).app: demo-back).ClusterIP llamado demo-clusterip (puerto 80 → 5000).curl http://demo-clusteripNodePort llamado demo-nodeport (nodePort 30082).http://localhost:30082 desde el navegador.LoadBalancer llamado demo-lb (puerto 8090).EXTERNAL-IP (kubectl get svc) y abre http://localhost:8090.kubectl get svc) y sitúa: TYPE, CLUSTER-IP, EXTERNAL-IP, PORT(S).kubectl get endpoints demo-clusterip): son las IP de los Pods detrás del Service.k8s/deployment.yaml y los tres Services (service-clusterip.yaml, service-nodeport.yaml, service-loadbalancer.yaml).kubectl get svc que muestre los 3 tipos.curl http://demo-clusterip desde un Pod cliente) con 2 nombres de Pod distintos.kubectl get endpoints demo-clusterip.| Criterio | Esperado |
|---|---|
| ClusterIP | Accesible por nombre DNS desde otro Pod |
| NodePort | Accesible en http://localhost:30082 |
| LoadBalancer | EXTERNAL-IP = localhost, accesible en http://localhost:8090 |
| Reparto | El nombre del Pod cambia entre dos peticiones |
| Endpoints | Las IP de los 3 Pods aparecen detrás del Service |
¿Bloqueado? El README.md contiene la corrección completa, las nociones están detalladas en 01-CONCEPTS-SERVICES.md, y 02-COMMANDES.md lista todo el
kubectlútil — a consultar después de haberlo intentado.