Saltar al contenido principal

Trabajando con Namespaces

Para obtener la lista de Namespaces ejecutamos:

kubectl get namespaces

El resultado será algo similar a:

NAME          STATUS    AGE
default Active 1d
kube-public Active 1d
kube-system Active 1d
  • default: Espacio de nombres por defecto.
  • kube-system: Espacio de nombres creado y gestionado por Kubernetes.
  • kube-public: Espacio de nombres accesible por todos los usuarios, reservado para uso interno del cluster.

Crear un nuevo Namespace

Para crear un nuevo Namespace, ejecutamos:

kubectl create ns proyecto1

El resultado será:

namespace "proyecto1" created

Otra forma de crear un Namespace es a partir de un archivo YAML con su definición:

apiVersion: v1
kind: Namespace
metadata:
name: proyecto1

Ver las características del nuevo Namespace

Podemos ver las características del nuevo espacio de nombres con:

kubectl describe ns proyecto1

El resultado será algo similar a:

Name:         proyecto1
Labels: <none>
Annotations: <none>
Status: Active

No resource quota.

No resource limits.

Obtener la definición YAML del Namespace

Podemos obtener la definición YAML del Namespace con:

kubectl get ns proyecto1 -o yaml

El resultado será algo similar a:

apiVersion: v1
kind: Namespace
metadata:
creationTimestamp: 2018-05-23T16:19:58Z
name: proyecto1
resourceVersion: "152566"
selfLink: /api/v1/namespaces/proyecto1
uid: 2306825c-5ea5-11e8-ab66-fa163e99cb75
spec:
finalizers:
- kubernetes
status:
phase: Active

Eliminar un Namespace

Para eliminar un Namespace, ejecutamos:

kubectl delete ns proyecto1

El resultado será:

namespace "proyecto1" deleted

Listar todos los recursos en un Namespace

Para listar todos los recursos en un Namespace específico, ejecutamos:

kubectl get all -n proyecto1

Esto mostrará todos los pods, servicios, deployments, etc., en el Namespace proyecto1.

Cambiar el Namespace por defecto

Para cambiar el Namespace por defecto en el contexto actual, ejecutamos:

kubectl config set-context --current --namespace=proyecto1

Esto hará que todos los comandos kubectl se ejecuten en el Namespace proyecto1 por defecto.