Kubernetes · 4 min read · Nov 03, 2025

Come creare i Namespaces in Kubernetes

Un namespace è utile quando più team utilizzano lo stesso cluster. Questo viene utilizzato quando c’è il potenziale di collisione dei nomi. Può essere un muro virtuale tra più cluster. Ad esempio, non possiamo avere pod con lo stesso nome in un Cluster Kubernetes, ma utilizzando il Namespace possiamo dividere virtualmente il Cluster e avere pod con lo stesso nome.

Alcune delle funzionalità importanti di un Namespace sono le seguenti.

  1. Aiuta la comunicazione pod-to-pod utilizzando lo stesso namespace.
  2. Funziona come un cluster virtuale che può trovarsi sopra lo stesso cluster fisico.
  3. Fornisce una separazione logica tra i team e i loro ambienti.

In questo articolo, creeremo un namespace e creeremo un pod nel namespace appena creato. Vedremo anche come un namespace può essere impostato come namespace predefinito.

Requisiti

  1. Cluster Kubernetes con almeno 1 nodo worker.
    Se desideri imparare a creare un Cluster Kubernetes, clicca qui. Questa guida ti aiuterà a creare un cluster Kubernetes con 1 Master e 2 Nodi su AWS Ubuntu 18.04 EC2 Instances.

Cosa faremo

  1. Creare Namespaces

Creare Namespaces

Per elencare tutti i namespaces disponibili nel Cluster Kubernetes, esegui il seguente comando. Puoi avere più namespaces e i namespaces possono avere metadati del namespace.

kubectl get namespace #Ottieni tutti i namespace nel cluster

get-namespaces for kubernetes namespace

Ora proviamo a creare un pod in un particolare namespace che non esiste.

Per creare un pod nel namespace “test-env” esegui il seguente comando.

kubectl run nginx --image=nginx --namespace=test-env #Prova a creare un pod nel namespace che non esiste.

Il pod non verrà creato nel namespace che non esiste, quindi dobbiamo prima creare un namespace.

Per creare un namespace “test-env” esegui il seguente comando (k8s crea namespace).

kubectl create namespace test-env #Crea un namespace
kubectl get namespace #Ottieni un elenco di namespaces

create-namespace

Ora abbiamo un namespace in cui vogliamo creare un pod.

Per creare un pod nel namespace che abbiamo creato, passa l’opzione –namespace=test-env al comando.

kubectl run nginx --image=nginx --namespace=test-env #Crea un pod nel namespace.

Se provi a ottenere i pod senza specificare il namespace, non otterrai i dettagli del pod.

kubectl get pods #Ottieni un elenco di pod

Per ottenere i dettagli del pod che appartiene al namespace “test-env”, utilizza il seguente comando.

kubectl get pods --namespace=test-env #Ottieni un elenco di pod nel namespace specificato

create-pod-in-the-namespace-created

Se desideri impostare il tuo namespace come namespace predefinito, in modo da non dover specificare l’opzione namespace nel comando, utilizza il seguente comando.

kubectl config set-context --current --namespace=test-env #Imposta il namespace predefinito

Ora non è necessario specificare il namespace nel comando per ottenere i dettagli del pod.

kubectl get pods #Ottieni un elenco di pod dal namespace predefinito

Per passare al namespace predefinito, utilizza il seguente comando.

kubectl config set-context --current --namespace=default #Controlla il namespace per predefinito
kubectl get pods #Ottieni un elenco di pod

Per controllare quale sia il namespace predefinito, utilizza i seguenti comandi.

kubectl config view --minify | grep namespace: #Estrai il namespace dal file di configurazione di kubernetes.
kubectl config set-context --current --namespace=test-env #Imposta il namespace predefinito nel file di configurazione.
kubectl config view --minify | grep namespace:

check-current-namespace

Controlla quali risorse Kubernetes sono un namespace, esegui il seguente comando.

kubectl api-resources --namespaced=true #Ottieni oggetti Kubernetes che possono essere in un namespace

resources-with-namespace

Per vedere quali risorse Kubernetes non sono in un namespace, utilizza il seguente comando.

kubectl api-resources --namespaced=false #Ottieni un elenco di oggetti Kubernetes che non possono mai essere in un namespace

resources-without-namespace

Puoi ottenere i dettagli del namespace utilizzando il comando menzionato di seguito.

kubectl get namespaces #Ottieni un elenco di namespaces.
kubectl describe namespace test-env #Ottieni dettagli di un namespace.

describe-namespace

Un namespace può anche essere creato utilizzando un file .yml.

vim namespace-using-file.yml #Crea un file di definizione del namespace

create-namespace-using-yml-file

Esegui il seguente comando per creare un namespace specificato nel file di definizione dell’oggetto.

kubectl create -f namespace-using-file.yml #Crea un namespace utilizzando un file .yml
kubectl get namespaces #Ottieni un elenco di namespaces

get-namespaces

Quando non hai più bisogno del tuo namespace, può semplicemente essere eliminato utilizzando il seguente comando.

kubectl get namespaces #Ottieni un elenco di namespaces
kubectl delete namespaces env-prod test-env #Elimina un namespace
kubectl get namespaces #Ottieni un elenco di namespaces

delete-namespaces

Usa il comando “kubectl change namespace” per passare a un namespace diverso.

Conclusione

In questo articolo, abbiamo appreso riguardo ai namespaces, alla creazione di un namespace e al cambiamento del namespace predefinito, controllando le risorse Kubernetes che sono e non sono in un namespace. Abbiamo anche visto come un oggetto Kubernetes, qui pod, può essere creato in un namespace di nostra scelta.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.