Autor: Ingeniero DevOps sénior con experiencia en romper y reparar clústeres para que no tengas que hacerlo.

Resumen ejecutivo: Para conseguir multi-inquilinizacion segura y una línea base reproducible en Kubernetes usa espacios de nombre para segregar equipos, aplica ResourceQuota y LimitRange para garantizar reparto justo de recursos, protege la red con NetworkPolicy comenzando por default-deny y permitiendo solo lo mínimo necesario, y endurece cargas con Pod Security Admission usando perfiles baseline y restricted. Entrega una plantilla repetible que incluya dos namespaces de equipo, cuotas y límites, políticas de red por defecto denegadas con permisos concretos, y PSA restricted como punto de partida.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software que ofrece aplicaciones a medida y software a medida, especialistas en inteligencia artificial y ia para empresas, servicios cloud aws y azure, ciberseguridad y pentesting, y soluciones de servicios inteligencia de negocio como power bi. Si necesitas migrar infraestructura o diseñar una plataforma segura y escalable podemos ayudar, por ejemplo con nuestros servicios cloud y automatización. Conecta capacidad de desarrollo y seguridad mediante nuestras ofertas de servicios cloud aws y azure y refuerza defensas con ciberseguridad y pentesting.

Prerequisitos: Un clúster Kubernetes preferiblemente v1.28, kubectl configurado, y un CNI que soporte NetworkPolicy como Calico, Cilium o Antrea. Acceso cluster-admin para la configuración inicial.

Conceptos clave y buenas prácticas

Namespaces para aislamiento: Los espacios de nombre dividen el clúster en inquilinos lógicos con RBAC, cuotas y políticas independientes. Mejores prácticas: un namespace por equipo o por capa de aplicación, usar etiquetas como env=prod, y aplicar PSA, políticas de red y cuotas al crear el namespace. Comandos de ejemplo: kubectl create ns team-a; kubectl create ns team-b; kubectl label ns team-a env=dev --overwrite.

ResourceQuota y LimitRange: ResourceQuota limita el consumo agregado por namespace; LimitRange fija solicitudes y límites por contenedor/pod. Combínalos: ResourceQuota para techos a nivel de equipo, LimitRange para defaults sensatos. Incluye requests y limits de cpu y memoria y cuenta de objetos como pods y PVCs. Aplica con kubectl apply -n team-a -f quota-team-a.yaml.

NetworkPolicy: Define quién puede hablar con quién, tanto ingress como egress. Estrategia recomendada: aplicar una política default-deny para ingress y egress y luego permitir solo lo necesario, por ejemplo DNS en el kube-system y el tráfico app hacia DB. Usa etiquetas coherentes y selectors de namespace/pod en lugar de IPs. Ejemplo de flujo: kubectl apply -n team-a -f np-default-deny.yaml; luego añadir reglas allow para DNS y para web hacia db.

Pod Security Admission PSA: PSA impone perfiles privileged, baseline y restricted mediante etiquetas en el namespace. Bloquea especificaciones peligrosas como privileged, hostPID, hostPath o escalada de capabilities. Recomiendo aplicar restricted en namespaces de producción y baseline durante la migración. Usa el patrón warn/enforce/audit para ver y corregir rupturas antes de forzar la política. Etiqueta ejemplo: kubectl label ns team-a pod-security.kubernetes.io/enforce=restricted --overwrite y añadir warn y audit para preview.

Mini-laboratorio rápido (aprox 25 min): crea dos namespaces team-a y team-b, aplica PSA restricted, aplica ResourceQuota y LimitRange adaptando CPU y memoria, despliega una app ligera y una DB en team-a, prueba conectividad, aplica np-default-deny y observa que la comunicación se bloquea, luego añade reglas que permitan DNS y solo web hacia db. Comandos clave: kubectl create ns team-a; kubectl label ns team-a pod-security.kubernetes.io/enforce=restricted --overwrite; kubectl apply -n team-a -f quota-team-a.yaml; kubectl apply -n team-a -f np-default-deny.yaml; kubectl apply -n team-a -f np-allow-dns.yaml -f np-db-ingress-from-web.yaml -f np-web-egress-to-db.yaml.

Plantilla de políticas recomendada: ResourceQuota con límites de pods, requests.cpu, requests.memory, limits.cpu, limits.memory y conteo de PVCs; LimitRange con defaultRequest y default por contenedor y máximos; NetworkPolicy default-deny para ingress y egress; NetworkPolicy específica para permitir DNS y otra para permitir web hacia db con selectors por etiqueta.

Puntos débiles comunes y cómo recuperarlos

Políticas que parecen no aplicarse: recuerda que las NetworkPolicy son aditivas; si niegas egress e ingress debes crear permite tanto en origen como en destino. DNS roto tras default-deny: añade una política que permita egress a kube-dns en el namespace kube-system sobre puertos 53 UDP/TCP. Pods rechazados por PSA restricted: ajusta securityContext para runAsNonRoot y drop capabilities o usa enforce=baseline mientras migras. Exceso de cuota en despliegues: ajusta ResourceQuota o reduce réplicas y deja margen de rollout del 20–30 por ciento. Tráfico este-oeste entre namespaces bloqueado: añade namespaceSelector en las reglas allow o utiliza gateways controlados.

Por qué esto mejora fiabilidad y seguridad: con Namespaces, Quotas, LimitRange, NetworkPolicy y PSA se establece un suelo de seguridad y equidad; los equipos no se pisan entre sí, el este-oeste queda restringido, y las especificaciones inseguras se bloquean en admisión. Esto facilita además construir capas adicionales como observabilidad, SLOs, PodDisruptionBudgets y autoscaling sobre una base estable.

SEO y servicios: además de la infraestructura, Q2BSTUDIO desarrolla soluciones completas de aplicaciones a medida y software a medida que integran inteligencia artificial, agentes IA y soluciones de inteligencia de negocio. Para proyectos que requieran integración con BI o power bi ofrecemos consultoría y desarrollos que unen datos y operaciones. También cubrimos automatización de procesos y despliegues seguros en la nube.

Contacto y siguiente paso: si quieres que preparemos una línea base personalizada para tu stack o una auditoría de seguridad para tu clúster contacta con nosotros y describiremos una propuesta que combine despliegue, ciberseguridad, servicios cloud y capacidades de inteligencia artificial para empresas.