Bird
Raised Fist0
Kubernetesdevops~10 mins

Default namespaces overview in Kubernetes - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - Default namespaces overview
Cluster starts
↓
Create default namespaces
↓
Namespaces available:
↓
default
↓
User pods
↓
User deploys pods in 'default' namespace by default
When a Kubernetes cluster starts, it creates three default namespaces: default, kube-system, and kube-public. Each serves a specific purpose for organizing pods and resources.
Execution Sample
Kubernetes
kubectl get namespaces
NAME              STATUS   AGE
default           Active   10d
kube-system       Active   10d
kube-public       Active   10d
This command lists the default namespaces created automatically in a Kubernetes cluster.
Process Table
StepActionNamespaces PresentPurpose
1Cluster startsNoneNo namespaces exist yet
2Create default namespacesdefault, kube-system, kube-publicNamespaces created automatically
3User deploys pod without specifying namespacedefault, kube-system, kube-publicPod goes to 'default' namespace
4System pods startdefault, kube-system, kube-public'kube-system' holds system pods
5Public info accessibledefault, kube-system, kube-public'kube-public' holds public info
💡 All default namespaces created and ready for use
Status Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
NamespacesNonedefault, kube-system, kube-publicdefault, kube-system, kube-publicdefault, kube-system, kube-publicdefault, kube-system, kube-public
Pod locationNoneNonedefaultdefaultdefault
Key Moments - 3 Insights
Why does a pod go to the 'default' namespace if I don't specify one?
Because Kubernetes automatically assigns pods to the 'default' namespace when no namespace is specified, as shown in step 3 of the execution_table.
What is the purpose of the 'kube-system' namespace?
'kube-system' holds system pods that manage the cluster itself, as indicated in step 4 of the execution_table.
Why is 'kube-public' namespace important?
'kube-public' contains resources that are readable by all users, useful for public cluster info, as shown in step 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step are the default namespaces created?
AStep 2
BStep 1
CStep 3
DStep 4
💡 Hint
Check the 'Namespaces Present' column to see when namespaces appear
According to variable_tracker, where is a pod placed after step 3?
A'kube-system' namespace
B'kube-public' namespace
C'default' namespace
DNo namespace assigned
💡 Hint
Look at 'Pod location' variable after step 3
If a user explicitly deploys a pod in 'kube-system', what changes in the execution_table?
APublic info appears at step 5
BPod location changes to 'kube-system' at step 3
CNamespaces change at step 2
DNo change in pod location
💡 Hint
Step 3 shows pod location; changing namespace affects this step
Concept Snapshot
Kubernetes creates three default namespaces automatically:
- default: for user pods without specified namespace
- kube-system: for system pods managing the cluster
- kube-public: for public cluster info
Pods go to 'default' if no namespace is given
Namespaces organize resources logically
Full Transcript
When a Kubernetes cluster starts, it automatically creates three namespaces: default, kube-system, and kube-public. The 'default' namespace is where user pods go if no namespace is specified. The 'kube-system' namespace holds system pods that manage the cluster. The 'kube-public' namespace contains resources accessible by all users. Using the command 'kubectl get namespaces' shows these namespaces. This organization helps keep cluster resources separated and manageable.

Practice

(1/5)
1. What is the purpose of namespaces in Kubernetes?
easy
A. To replace pods in the cluster
B. To increase the CPU speed of nodes
C. To organize resources into separate groups within a cluster
D. To store container images

Solution

  1. Step 1: Understand what namespaces do

    Namespaces help group and isolate resources in a Kubernetes cluster.
  2. Step 2: Identify the correct purpose

    They do not affect CPU speed, store images, or replace pods.
  3. Final Answer:

    To organize resources into separate groups within a cluster -> Option C
  4. Quick Check:

    Namespaces organize resources [OK]
Hint: Namespaces group resources logically in Kubernetes [OK]
Common Mistakes:
  • Thinking namespaces speed up nodes
  • Confusing namespaces with image storage
  • Believing namespaces replace pods
2. Which of the following is a default namespace in Kubernetes?
easy
A. user-space
B. production
C. development
D. kube-system

Solution

  1. Step 1: Recall default namespaces

    Kubernetes provides default namespaces like default, kube-system, and kube-public.
  2. Step 2: Identify the correct default namespace

    kube-system is a default namespace for system components, while others are user-defined.
  3. Final Answer:

    kube-system -> Option D
  4. Quick Check:

    kube-system is default namespace [OK]
Hint: Remember kube-system for system pods [OK]
Common Mistakes:
  • Assuming production is default
  • Confusing user namespaces with defaults
  • Thinking development is built-in
3. What will the command kubectl get pods -n default show?
medium
A. Pods in the default namespace
B. All pods in all namespaces
C. Pods in the kube-system namespace
D. No pods, because default namespace is empty

Solution

  1. Step 1: Understand the command syntax

    kubectl get pods -n default lists pods in the namespace named default.
  2. Step 2: Identify the namespace targeted

    The -n default flag limits output to the default namespace only.
  3. Final Answer:

    Pods in the default namespace -> Option A
  4. Quick Check:

    kubectl -n default shows default pods [OK]
Hint: -n specifies namespace for kubectl commands [OK]
Common Mistakes:
  • Thinking it shows pods from all namespaces
  • Confusing default with kube-system
  • Assuming default namespace is always empty
4. You run kubectl get pods but get an error: error: namespace "defaultt" not found. What is the likely cause?
medium
A. Pods do not exist in any namespace
B. The namespace name is misspelled
C. kubectl is not installed
D. The cluster is down

Solution

  1. Step 1: Analyze the error message

    The error says namespace "defaultt" not found, indicating a typo.
  2. Step 2: Check command usage

    Likely the user typed defaultt instead of default as namespace.
  3. Final Answer:

    The namespace name is misspelled -> Option B
  4. Quick Check:

    Namespace typo causes not found error [OK]
Hint: Check spelling of namespace names carefully [OK]
Common Mistakes:
  • Assuming pods don't exist anywhere
  • Blaming kubectl installation
  • Thinking cluster is down without checking
5. You want to deploy an app only visible to system components. Which default namespace should you use?
hard
A. kube-system
B. kube-public
C. default
D. custom-namespace

Solution

  1. Step 1: Understand namespace roles

    kube-system holds system components and is isolated from normal user apps.
  2. Step 2: Choose namespace for system visibility

    Deploying in kube-system makes the app visible only to system components.
  3. Final Answer:

    kube-system -> Option A
  4. Quick Check:

    System apps use kube-system namespace [OK]
Hint: Use kube-system for system-only apps [OK]
Common Mistakes:
  • Using default namespace for system apps
  • Choosing kube-public which is for public info
  • Using a custom namespace without system access
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard