Kubernetes · 4 min read · Nov 03, 2025

Como criar Namespaces no Kubernetes

Um namespace é útil quando várias equipes estão usando o mesmo cluster. Isso é usado quando há potencial para colisão de nomes. Pode ser uma parede virtual entre vários clusters. Por exemplo, não podemos ter pods com o mesmo nome em um Cluster Kubernetes, mas usando Namespace podemos dividir virtualmente o Cluster e ter pods com o mesmo nome.

Algumas das funcionalidades importantes de um Namespace são as seguintes.

  1. Ajuda na comunicação pod-a-pod usando o mesmo namespace.
  2. Atua como um cluster virtual que pode estar em cima do mesmo cluster físico.
  3. Fornece uma separação lógica entre as equipes e seus ambientes.

Neste artigo, criaremos um namespace e criaremos um pod no namespace recém-criado. Também veremos como um namespace pode ser definido como um namespace padrão.

Pré-requisitos

  1. Cluster Kubernetes com pelo menos 1 nó trabalhador.
    Se você quiser aprender a criar um Cluster Kubernetes, clique aqui. Este guia o ajudará a criar um cluster Kubernetes com 1 Master e 2 Nós em Instâncias EC2 Ubuntu 18.04 da AWS.

O que faremos

  1. Criar Namespaces

Criar Namespaces

Para listar todos os namespaces disponíveis no Cluster Kubernetes, execute o seguinte comando. Você pode ter múltiplos namespaces e os namespaces podem ter metadados de namespace.

kubectl get namespace #Obter todos os namespaces no cluster

get-namespaces for kubernetes namespace

Agora vamos tentar criar um pod em um namespace específico que não existe.

Para criar um pod no namespace “test-env”, execute o seguinte comando.

kubectl run nginx --image=nginx --namespace=test-env #Tentar criar um pod no namespace que não existe.

O pod não será criado no namespace que não existe, portanto, primeiro precisamos criar um namespace.

Para criar um namespace “test-env”, execute o seguinte comando (k8s criar namespace).

kubectl create namespace test-env #Criar um namespace
kubectl get namespace #Obter uma lista de namespaces

create-namespace

Agora temos um namespace no qual queremos criar um pod.

Para criar um pod no namespace que criamos, passe a opção –namespace=test-env para o comando.

kubectl run nginx --image=nginx --namespace=test-env #Criar um pod no namespace.

Se você tentar obter pods sem especificar o namespace, não obterá detalhes do pod.

kubectl get pods #Obter uma lista de pods

Para obter detalhes do pod que pertence ao namespace “test-env”, use o seguinte comando.

kubectl get pods --namespace=test-env #Obter uma lista de pods no namespace especificado

create-pod-in-the-namespace-created

Se você quiser definir seu namespace como o namespace padrão, para que não haja necessidade de especificar a opção de namespace no comando, use o seguinte comando.

kubectl config set-context --current --namespace=test-env #Definir namespace padrão

Agora não há necessidade de especificar o namespace no comando para obter detalhes do pod.

kubectl get pods #Obter uma lista de pods do namespace padrão

Para mudar para o namespace padrão, use o seguinte comando.

kubectl config set-context --current --namespace=default #Verificar o namespace para padrão
kubectl get pods #Obter uma lista de pods

Para verificar qual é o namespace padrão, use os seguintes comandos.

kubectl config view --minify | grep namespace: #Extrair o namespace do arquivo de configuração do kubernetes.
kubectl config set-context --current --namespace=test-env #Definir namespace padrão no arquivo de configuração.
kubectl config view --minify | grep namespace:

check-current-namespace

Verifique quais recursos do Kubernetes são um namespace, execute o seguinte comando.

kubectl api-resources --namespaced=true #Obter objetos Kubernetes que podem estar em namespaces

resources-with-namespace

Para ver quais recursos do Kubernetes não estão em um namespace, use o seguinte comando.

kubectl api-resources --namespaced=false #Obter uma lista de objetos Kubernetes que nunca podem estar em um namespace

resources-without-namespace

Você pode obter detalhes do namespace usando o comando mencionado abaixo.

kubectl get namespaces #Obter uma lista de namespaces.
kubectl describe namespace test-env #Obter detalhes de um namespace.

describe-namespace

Um namespace também pode ser criado usando um arquivo .yml.

vim namespace-using-file.yml #Criar um arquivo de definição de namespace

create-namespace-using-yml-file

Execute o seguinte comando para criar um namespace especificado no arquivo de definição do objeto.

kubectl create -f namespace-using-file.yml #Criar um namespace usando um arquivo .yml
kubectl get namespaces #Obter uma lista de namespaces

get-namespaces

Quando você não precisar mais do seu namespace, ele pode ser simplesmente excluído usando o seguinte comando.

kubectl get namespaces #Obter uma lista de namespaces
kubectl delete namespaces env-prod test-env #Excluir um namespace
kubectl get namespaces #Obter uma lista de namespaces

delete-namespaces

Use o comando “kubectl change namespace” para mudar para um namespace diferente.

Conclusão

Neste artigo, aprendemos sobre namespaces, como criar um namespace e como mudar o namespace padrão, verificando os recursos do Kubernetes que estão e não estão em um namespace. Também vimos como um objeto Kubernetes, aqui um pod, pode ser criado em um namespace de nossa escolha.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.