Kubernetes Namespaces, Kubernetes kümesi içinde kaynakları (pod, service, configmap, secret vb.) mantıksal olarak gruplamak ve izole etmek için kullanılan yapılardır. Büyük projelerde, ekipler veya ortamlar (dev, test, prod) arasında ayrım yapmak için kullanılır.
Kubernetes’in varsayılan çalışma alanı, yani tüm kaynakların yüklendiği yerdir. Kubernetes’te bir şey oluşturduğunda (örneğin bir pod), eğer namespace belirtmezsen bu kaynak otomatik olarak default namespaceiçinde çalışır.
Yani herkes default alanda (aynı namespace’te) çalışırsa:
• Pod isimleri çakışır
• Kimin kaynağı hangisi belli olmaz
• Yönetmesi zorlaşır
• Güvenlik riski oluşur
Komutlar
kubectl get namespaces
kubectl create namespaces app1
kubectl get pods -n app1
apiVersion: v1
kind: Namespace
metadata:
name: development
—
apiVersion: v1
kind: Pod
metadata:
namespace: app1
name: app1
spec:
containers:
– name: namespacecontainer
image: nginx:latest
ports:
– containerPort: 80
kubectl exec -it pod10 -n team2 — bash