Namespaces

Los namespaces en Kubernetes permiteson agruparuna recursos(Pods,forma servicios,de deployments,aislar etc.)y pororganizar recursos dentro de un mismo clúster.
Piensa en ellos como "espacios de nombres.trabajo" Deo esta"compartimentos" maneravirtuales sidonde tenemospuedes diferentestener aplicaciones,recursos usuarios,que etc.no trabajandointerfieren enentre sí, aunque tengan el mismo clusternombre.
Utilidad
-
Separar entornos: Puedes tener un
namespacepara desarrollo, otro para testing y otro para producción dentro del mismo clúster. -
Evitar conflictos de
kubernetesnombres:puedenPuedestrabajartener un Deployment llamadoweb-appenespaciosdos namespaces diferentes sin que choquen entre ellos. -
Aplicar políticas y límites:
-
Puedes aplicar quotas de
nombrerecursosseparados.por namespace (CPU, memoria). -
InstruccionesPuedes definir reglas de seguridad o control de acceso (RBAC) por namespace.
-
-
Facilitar la administración: En clústeres grandes, los namespaces ayudan a que los equipos trabajen de manera aislada y organizada.
Namespaces por defecto
-
default: Namespace por defecto donde se crean los recursos si no especificas otro.
-
kube-system: Recursos internos del sistema de Kubernetes (DNS, kube-proxy, etc.).
-
kube-public: Datos accesibles de forma pública dentro del clúster (rara vez se usa directamente).
-
kube-node-lease: Namespace para gestionar heartbeats de los nodos (para detectar si un nodo está vivo).
Comandos para trabajar con Namespaces:
# Devuelve el listado de namespaces
kubectl get namespaces
# Crea un namespace
kubectl create namespace <nombre>
# Especifical el namespace en el cliente kubectl
kubectl apply -f pod.yaml --namespace=<nombre>
# Establecer un determinado namespace como predeterminado
kubectl config set-context --current -–namespace=<nombre>
Definir un namespace dentro de un YAML
metadata:
name: myapp
namespace: desarrollo