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.
- Aiuta la comunicazione pod-to-pod utilizzando lo stesso namespace.
- Funziona come un cluster virtuale che può trovarsi sopra lo stesso cluster fisico.
- 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
- 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
- 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
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 namespacekubectl get namespace #Ottieni un elenco di namespaces
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 podPer 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
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 predefinitoOra non è necessario specificare il namespace nel comando per ottenere i dettagli del pod.
kubectl get pods #Ottieni un elenco di pod dal namespace predefinitoPer passare al namespace predefinito, utilizza il seguente comando.
kubectl config set-context --current --namespace=default #Controlla il namespace per predefinitokubectl get pods #Ottieni un elenco di podPer 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:
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
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
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.
Un namespace può anche essere creato utilizzando un file .yml.
vim namespace-using-file.yml #Crea un file di definizione del namespace
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 .ymlkubectl get namespaces #Ottieni un elenco di namespaces
Quando non hai più bisogno del tuo namespace, può semplicemente essere eliminato utilizzando il seguente comando.
kubectl get namespaces #Ottieni un elenco di namespaceskubectl delete namespaces env-prod test-env #Elimina un namespacekubectl get namespaces #Ottieni un elenco di 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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.