Namespaces are intended for use in environments with many users spread across multiple teams, or projects. For clusters with a few to tens of users, you should not need to create or think about namespaces at all. Start using namespaces when you need the features they provide.
Initial Namespaces
default
Kubernetes includes this namespace so that you can start using your new cluster without first creating a namespace.
kube-public
This namespace is readable by all clients (including those not authenticated). This namespace is mostly reserved for cluster usage, in case that some resources should be visible and readable publicly throughout the whole cluster. The public aspect of this namespace is only a convention, not a requirement.
kube-system
The namespace for objects created by the Kubernetes system.
to switch the name spaces you need to set the namespace in the current context to the new namespace
to list all pods in all namespaces
use
Resources
to limit resources in a namespace, create a resource quota to create one use a definition file