Sobes.tech
Junior

O que é um espaço de nomes?

sobes.tech IA

Resposta da IA

O espaço de nomes (namespace) no Kubernetes é um mecanismo de agrupamento virtual de objetos (pods, serviços, deployments, etc.) dentro de um mesmo cluster. Ele fornece separação lógica de recursos, isolamento, controlo de acesso e evita conflitos de nomes.

Propriedades principais:

  • Isolamento: Os objetos de um espaço de nomes não são visíveis diretamente em outro.
  • Gestão de acesso: Políticas RBAC podem ser aplicadas aos espaços de nomes, limitando o acesso de utilizadores ou grupos a recursos específicos.
  • Escalabilidade: Permite organizar um cluster com muitas equipas ou aplicações sem sobreposições.
  • Prevenção de conflitos: Os objetos em diferentes espaços de nomes podem ter nomes iguais.

Exemplos de uso:

  • Separação de ambientes (desenvolvimento, staging, produção).
  • Separação por equipas ou projetos.
  • Gestão de recursos para diferentes aplicações.

Cada cluster Kubernetes tem espaços de nomes predefinidos:

  • default: Espaço de nomes padrão para objetos não especificados explicitamente.
  • kube-system: Para objetos do sistema criados pelo Kubernetes.
  • kube-public: Para recursos visíveis para todos os utilizadores.
  • kube-node-lease: Contém objetos Lease para monitorizar a disponibilidade dos nós.
# Exemplo de criação de um espaço de nomes
apiVersion: v1
kind: Namespace
metadata:
  name: my-app
# Alterar o contexto para o espaço de nomes
kubectl config set-context --current --namespace=my-app

# Ver objetos num espaço de nomes específico
kubectl get pods -n my-app

# Ver todos os espaços de nomes
kubectl get namespaces