O que e um namespace no Kubernetes? Particoes logicas de cluster
Um namespace do Kubernetes e uma particao logica dentro de um cluster - uma forma de agrupar recursos, delimitar nomes e aplicar quotas e controle de acesso a uma fatia do cluster.
Um unico cluster costuma hospedar muitos times, ambientes ou apps. Namespaces permitem dividir esse cluster em secoes logicas para que os recursos nao colidam e as politicas possam mirar cada secao. Eles sao um limite organizacional e de politica, nao um muro de seguranca rigido como um node ou uma VM.
O que um namespace delimita
A maioria dos objetos - pods, Services, Deployments, ConfigMaps - vive em um namespace, e seus nomes precisam ser unicos apenas dentro dele. Assim, web em staging e web em prod sao objetos distintos no mesmo cluster.
O que ele nao isola
Namespaces nao fornecem isolamento de seguranca forte por si sos. Network policies, RBAC e resource quotas aplicados por namespace adicionam os limites reais; o namespace e a unidade a que essas politicas se prendem.
Escopo de cluster vs namespaced
Alguns objetos (Nodes, PersistentVolumes, os proprios namespaces) tem escopo de cluster e vivem fora de qualquer namespace. A maioria dos objetos de workload e namespaced.
Padroes comuns
- Namespaces por ambiente (
dev,staging,prod). - Namespaces por time com RBAC e quotas.
- Namespaces por aplicacao para isolamento e limpeza organizada.
Namespaces na CI/CD
Pipelines miram um namespace especifico com kubectl -n <ns> apply ou um Helm release por namespace. Ambientes de preview efemeros costumam ser criados como seu proprio namespace por pull request e depois desmontados.
Principais conclusões
- Um namespace e uma particao logica que delimita nomes e politicas em um cluster.
- E um limite organizacional; RBAC, quotas e network policy adicionam isolamento real.
- A CI/CD mira namespaces por ambiente, time ou preview deploy.