• always use namespaces even though official document say not to for smaller projects
  • 4 default namespaces
    • kube-system
    • kube-public
    • kube-node-lease
    • default

Create Namespace

kubectl creante namespace <name>
kubectl get namespace

you can specify the namespaces in the metadata

Why use namespaces?

Difficult to have an overview without them

Multiple Teams Same Object Name

  • this will override other teams deployment without namespaces

Both Staging and Development environments in the same cluster

  • why do like this? - cuz it will allow them to share common resources(ex:nginx controller, elastic stack) without deploying them twice in two different clusters > >

Resource Sharing: Blue Green Deployment

  • both versions need same resources. so as said before we can share them within the same cluster without deploying in 2 different clusters > >

Create Access and Resource limits

  • teams can only access their namespace
  • they can’t interfere with other team’s namespace
  • you can limit the resources for each team

Characteristics of Namespace

You can’t access most resources from another Namespace

  • example would be configMaps and secrets. you have to define configMaps and secrets for each namespace.

  • but you can access services in other namespaces