La teoría define qué debe ocurrir. Las figuras y tablas reducen el mecanismo a señales observables; la topología y el inspector de paquete permiten comprobarlo después. Cada lección termina con «Lo entiendo»: márcala cuando puedas explicarla, no cuando la hayas leído.
Conceptos disponibles20
El problema: “el Pod tiene IP” no explica por qué el flujo funciona
En los módulos anteriores seguiste un paquete por Linux y validaste una identidad . Kubernetes añade otra capa de abstracción: un puede cambiar de IP, un puede tener una IP virtual sin endpoints sanos y una NetworkPolicy puede existir sin que el CNI la aplique. Cuando un frontend no llega a una API, “revisa la red de Kubernetes” no es un diagnóstico. [1]
Aquí aprenderás a construir una explicación por planos: “el nombre resolvió el ClusterIP; kube-proxy eligió este endpoint; el CNI llevó el paquete al Pod remoto; la policy permitió o negó este puerto”. Esa secuencia conecta cada objeto de Kubernetes con una evidencia verificable.
Mapa mínimo: del Pod al Service y de vuelta al Pod
Flujo del mecanismo5 etapas
Un Service conduce a un Pod real
El ClusterIP estabiliza descubrimiento; no es el destino final.
origen
frontend Pod. El workload origina tráfico desde su namespace e IP de Pod.
Ver la figura original
frontend Pod
│ IP de Pod + namespace de red
▼
DNS / Service ── nombre → ClusterIP estable
│
▼
kube-proxy ── DNAT hacia un endpoint real
│
▼
CNI ── ruta directa u overlay VXLAN entre nodos
│
▼
api Pod ── NetworkPolicy/CNI decide el flujo
Un Service ayuda a descubrir y balancear; no cifra, no autentica y no abre una excepción de firewall. Una NetworkPolicy define intención, pero sólo es control efectivo cuando el CNI correspondiente la aplica. [2]
Ruta de estudio y conexión con el roadmap
Distingue IP de Pod, ClusterIP y NodePort; cada una responde a una necesidad distinta.
Sigue una conexión desde Service hasta EndpointSlice y Pod.
Compara overlay VXLAN con routing directo para entender MTU y rutas.
Empieza con default deny y abre DNS más el flujo de negocio mínimo.
El módulo siguiente desciende otro nivel: si el datapath de Kubernetes no es suficiente para ver o controlar un comportamiento, permite observarlo y aplicar decisiones dentro del kernel.
Referencia técnica: modelo de red Kubernetes
Cada Pod tiene IP alcanzable y sus contenedores comparten network . CNI provisiona interfaz, IP, e IPAM. VXLAN encapsula L3 del Pod sobre underlay y reduce MTU; direct routing instala rutas a Pod y exige underlay alcanzable. [3]
ClusterIP es VIP estable; kube-proxy la redirige a Endpoints/EndpointSlices por /IPVS. NodePort abre puerto por nodo. Service no es identidad, cifrado ni autorización. [2]
NetworkPolicy exige CNI con enforcement. policyTypes Ingress+Egress sin reglas es default deny de pods seleccionados; añada selector+puerto+protocolo. DNS necesita egress UDP/TCP 53. Selector vacío cubre namespace completo. [4]
Plano
Identificador
Riesgo
Pod
IP efímera + labels
policy IP mutable
Service
ClusterIP/puerto
VIP no firewall
Node
NodePort
exposición por nodo
CNI
rutas/enforcement
asumir policy activa
Pulsa una fila para fijarla.
Referencia: no cuenta para tu progreso. Vuelve aquí cuando necesites un campo o un estado concreto.
La IP del Pod no es una abstracción decorativa
Cada Pod tiene IP alcanzable y CNI provisiona , dirección, ruta e IPAM. VXLAN encapsula IP-pod/TCP dentro de IP-nodo/UDP/VXLAN y reduce MTU; direct routing evita overhead pero exige rutas y anti-spoofing correctos en underlay. [3]
Flujo del mecanismo5 etapas
VXLAN mete un paquete dentro de otro
Lee de fuera hacia dentro: la red física solo ve la capa exterior.
underlay
eth + IP nodo. Cabeceras exteriores: la red física transporta el paquete de nodo a nodo, sin conocer los Pods.
Ver la figura original
[eth][IP nodo A][UDP 4789][VXLAN][eth][IP pod A][TCP][payload]
└─ MTU útil para payload disminuye
Elección
Ventaja
Coste a observar
VXLAN overlay
underlay ignora Pod CIDR
MTU, CPU, encapsulación
direct routing
menos overhead
rutas del underlay
eBPF datapath
evita cadenas iptables largas
nuevo punto de policy
IPVS
selección eficiente Service
inspección IPVS/
Pulsa una fila para fijarla.
Service no equivale a conexión directa
ClusterIP estabiliza descubrimiento. Frontend usa 10.96.12.34:80; kube-proxy selecciona endpoint y hacia 10.244.2.20:8080. Service con selector correcto pero endpoints vacíos parece fallo de red, pero es descubrimiento/readiness. [2]
NetworkPolicy es aditiva: conjunto permitido es unión de reglas que seleccionan Pod; no hay deny de prioridad superior. Empiece con aislamiento y abra selector+puerto+protocolo. [4]
Síntoma
Plano primero
Evidencia
Service resuelve, timeout
endpoints/policy
EndpointSlice, labels, contador CNI
local funciona, remoto falla
CNI/MTU/ruta
Pod CIDR, VXLAN, capture nodo
NodePort expuesto
borde nodo
reglas/listener/firewall cloud
Pod no entra a Service
probe/readiness/selector
Pulsa una fila para fijarla.
Checkpoint 04 · predice antes de revelar
Default deny sin DNS rompe antes de tocar la API
Aplicaste una NetworkPolicy con Ingress y Egress sin reglas al Pod frontend. El Service api existe y tiene endpoints sanos, pero frontend ya no puede resolver api.default.svc.cluster.local.
¿Vas a practicar en Linux? Verifica tu entornoOpcional
Usa esta ruta sólo después de preparar el laboratorio en tu propia máquina. No hace falta instalar ni ejecutar nada para leer, explorar o completar los checkpoints.
pnpm verifier:build
sudo ./bin/lnverify run lab-04-k8s-default-deny --json
Carga tu verificación
Ejecuta el script instrumentado. Evalúa cada check por separado y escribe una línea ::lnet por check, en vez de abortar en el primero.
O usa el verificador en Go, que produce los mismos marcadores o JSON:
sudo ./bin/lnverify run lab-04-k8s-default-deny
Pega la salida aquí. También vale la salida del script original (PASS-lab-04) o una traza de bash -x.