Kubernetes · 4 min read · Nov 03, 2025
Cómo crear Namespaces en Kubernetes

Un namespace es útil cuando múltiples equipos están utilizando el mismo clúster. Esto se utiliza cuando hay un potencial de colisión de nombres. Puede ser una pared virtual entre múltiples clústeres. Por ejemplo, no podemos tener pods con el mismo nombre en un clúster de Kubernetes, pero usando Namespace podemos dividir virtualmente el clúster y tener pods con el mismo nombre.
Algunas de las funcionalidades importantes de un Namespace son las siguientes.
- Ayuda a la comunicación pod-a-pod utilizando el mismo namespace.
- Actúa como un clúster virtual que puede estar encima del mismo clúster físico.
- Proporciona una separación lógica entre los equipos y sus entornos.
En este artículo, crearemos un namespace y crearemos un pod en el namespace recién creado. También veremos cómo se puede establecer un namespace como el namespace predeterminado.
Requisitos previos
- Clúster de Kubernetes con al menos 1 nodo trabajador.
Si deseas aprender a crear un clúster de Kubernetes, haz clic aquí. Esta guía te ayudará a crear un clúster de Kubernetes con 1 Maestro y 2 Nodos en Instancias EC2 de AWS Ubuntu 18.04.
Lo que haremos
- Crear Namespaces
Crear Namespaces
Para listar todos los namespaces disponibles en el clúster de Kubernetes, ejecuta el siguiente comando. Puedes tener múltiples namespaces y los namespaces pueden tener metadatos de namespace.
kubectl get namespace #Obtener todos los namespaces en el clúster
Ahora intentemos crear un pod en un namespace particular que no existe.
Para crear un pod en el namespace “test-env”, ejecuta el siguiente comando.
kubectl run nginx --image=nginx --namespace=test-env #Intentar crear un pod en el namespace que no existe.El pod no se creará en el namespace que no existe, por lo tanto, primero necesitamos crear un namespace.
Para crear un namespace “test-env”, ejecuta el siguiente comando (k8s crear namespace).
kubectl create namespace test-env #Crear un namespacekubectl get namespace #Obtener una lista de namespaces
Ahora tenemos un namespace en el que queremos crear un pod.
Para crear un pod en el namespace que creamos, pasa la opción –namespace=test-env al comando.
kubectl run nginx --image=nginx --namespace=test-env #Crear un pod en el namespace.Si intentas obtener pods sin especificar el namespace, no obtendrás detalles del pod.
kubectl get pods #Obtener una lista de podsPara obtener detalles del pod que pertenece al namespace “test-env”, usa el siguiente comando.
kubectl get pods --namespace=test-env #Obtener una lista de pods en el namespace especificado
Si deseas establecer tu namespace como el namespace predeterminado, de modo que no haya necesidad de especificar la opción de namespace en el comando, usa el siguiente comando.
kubectl config set-context --current --namespace=test-env #Establecer el namespace predeterminadoAhora no hay necesidad de especificar el namespace en el comando para obtener detalles del pod.
kubectl get pods #Obtener una lista de pods del namespace predeterminadoPara cambiar al namespace predeterminado, usa el siguiente comando.
kubectl config set-context --current --namespace=default #Cambiar el namespace a predeterminadokubectl get pods #Obtener una lista de podsPara verificar cuál es el namespace predeterminado, usa los siguientes comandos.
kubectl config view --minify | grep namespace: #Extraer el namespace del archivo de configuración de kubernetes.kubectl config set-context --current --namespace=test-env #Establecer el namespace predeterminado en el archivo de configuración.kubectl config view --minify | grep namespace:
Verifica qué recursos de Kubernetes son un namespace, ejecuta el siguiente comando.
kubectl api-resources --namespaced=true #Obtener objetos de Kubernetes que pueden estar en un namespace
Para ver qué recursos de Kubernetes no están en un namespace, usa el siguiente comando.
kubectl api-resources --namespaced=false #Obtener una lista de objetos de Kubernetes que nunca pueden estar en un namespace
Puedes obtener detalles del namespace usando el comando mencionado a continuación.
kubectl get namespaces #Obtener una lista de namespaces.kubectl describe namespace test-env #Obtener detalles de un namespace.
Un namespace también se puede crear utilizando un archivo .yml.
vim namespace-using-file.yml #Crear un archivo de definición de namespace
Ejecuta el siguiente comando para crear un namespace especificado en el archivo de definición de objeto.
kubectl create -f namespace-using-file.yml #Crear un namespace usando un archivo .ymlkubectl get namespaces #Obtener una lista de namespaces
Cuando ya no necesites tu namespace, simplemente se puede eliminar usando el siguiente comando.
kubectl get namespaces #Obtener una lista de namespaceskubectl delete namespaces env-prod test-env #Eliminar un namespacekubectl get namespaces #Obtener una lista de namespaces
Usa el comando “kubectl change namespace” para cambiar a un namespace diferente.
Conclusión
En este artículo, aprendimos sobre namespaces, cómo crear un namespace y cómo cambiar el namespace predeterminado, verificando los recursos de Kubernetes que están y no están en un namespace. También vimos cómo se puede crear un objeto de Kubernetes, aquí un pod, en un namespace de nuestra elección.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.