Skip to content

Default Kubernetes Namespaces

Kubernetes clusters initialize with four specific namespaces that serve distinct functions within the cluster's operations.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md] These namespaces are default, kube-system, kube-public, and kube-node-lease.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md]

default

The default namespace is the standard destination for objects when no other namespace is specified during creation.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md] Unless a user explicitly targets a different namespace, Kubernetes resources are deployed into this namespace by default.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md]

kube-system

This namespace is reserved for the system components created by Kubernetes itself.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md] It houses the core objects required to run the cluster management and control plane services.

kube-public

The kube-public namespace is automatically created and readable by all users, including those who are not authenticated.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md] While its visibility is public by convention, this namespace is primarily used for resources that are intended to be visible and readable across the entire cluster.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md]

kube-node-lease

This namespace contains the Lease objects associated with each node in the cluster.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md] These objects allow the kubelet (the node agent) to send heartbeats, which enables the control plane to detect node failures.^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md]

Sources

^[400-devops__06-Kubernetes__k8s-ithelp__Day22__README.md]