What are Kubernetes namespaces and why are they used?

Beginner

Answer

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