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