- 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
configMap
s andsecrets
. you have to defineconfigMaps
andsecrets
for each namespace.
- but you can access
services
in other namespaces