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.

  1. Ayuda a la comunicación pod-a-pod utilizando el mismo namespace.
  2. Actúa como un clúster virtual que puede estar encima del mismo clúster físico.
  3. 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

  1. 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

  1. 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

get-namespaces for kubernetes namespace

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 namespace
kubectl get namespace #Obtener una lista de namespaces

create-namespace

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 pods

Para 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

create-pod-in-the-namespace-created

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 predeterminado

Ahora 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 predeterminado

Para cambiar al namespace predeterminado, usa el siguiente comando.

kubectl config set-context --current --namespace=default #Cambiar el namespace a predeterminado
kubectl get pods #Obtener una lista de pods

Para 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:

check-current-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

resources-with-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

resources-without-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.

describe-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

create-namespace-using-yml-file

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 .yml
kubectl get namespaces #Obtener una lista de namespaces

get-namespaces

Cuando ya no necesites tu namespace, simplemente se puede eliminar usando el siguiente comando.

kubectl get namespaces #Obtener una lista de namespaces
kubectl delete namespaces env-prod test-env #Eliminar un namespace
kubectl get namespaces #Obtener una lista de namespaces

delete-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.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.