📁 Virtual Clusters Inside One Physical Cluster
All pods in default namespace? Chaos. Namespaces separate environments, teams, or components. Resource quotas, RBAC per namespace.
📝 Create and Use Namespaces
# Create namespace kubectl create namespace development kubectl create namespace staging kubectl create namespace production # List namespaces kubectl get namespaces # Run pod in specific namespace kubectl run nginx --image=nginx -n development # Set default namespace for context kubectl config set-context --current --namespace=development # Get resources from all namespaces kubectl get pods --all-namespaces
🎯 Namespace YAML
apiVersion: v1
kind: Namespace
metadata:
name: development
labels:
environment: dev
team: backend
---
apiVersion: v1
kind: Pod
metadata:
name: myapp
namespace: development
spec:
containers:
- name: app
image: myapp:latest
💡 Best Practices
- Default namespace: Use for system components only
- One namespace per environment (dev, staging, prod)
- One namespace per team or project
- ResourceQuota per namespace (prevent one team from hogging)
- Network policies between namespaces
“All 50 developers used default namespace. Chaos. Created namespaces per team. Now everyone has their own space. Namespaces are free, use them.”
