Kubernetes 101 : Default namespaces, custom namespaces and pods

For organization and also isolation purposes, kubernetes creates during its initial setup its main default namespaces - default, kube-system and kube-public -.

To see these namespace, we use the below command:

When we create a kubernetes object, a pod for example without mentioning any namespace, our pod is created in the default namespace.

The kube-system namespace contains all the resources that make the kubernetes cluster run as we can see below:

The kube-public namespace is accessible by everybody, it is mainly used to house public cluster information, ...

We can create a namespace using a Yaml file as below:

Then we "apply" the Yaml file:

We can check if our namespace was created using the below command:

Now that we have our namespace, we are going to run an "nginx" pod in it using the below command:

To see our pod, we would need to specify the namespace otherwise we will only see the resources in the default namespace:

To avoid mentioning the namespace - namespace_1 - with each command, we could change the default namespace for kubernetes using the below command:


Leave as a comment: