Namespaces provide a way to partition cluster resources between multiple users or teams. They create virtual clusters within a physical cluster, enabling:
- Resource isolation: Separate environments (dev, staging, prod)
- Access control: Different permissions for different teams
- Resource quotas: Limit resource consumption per namespace
- Name scoping: Same resource names can exist in different namespaces
kubectl create namespace development
kubectl get pods --namespace=development