Bird
Raised Fist0
Kubernetesdevops~5 mins

Default namespaces overview in Kubernetes - Commands & Configuration

Choose your learning style10 modes available
Introduction
Kubernetes organizes resources into groups called namespaces. Default namespaces are pre-made groups that help keep things tidy and separate. They solve the problem of managing many resources by giving each a home.
When you want to separate system resources from your application resources to avoid conflicts.
When you need to run multiple projects on the same Kubernetes cluster without mixing their resources.
When you want to quickly deploy an app without creating a new namespace.
When you want to understand where your pods and services are running by default.
When troubleshooting, to know which namespace your resources belong to.
Commands
This command lists all namespaces in the Kubernetes cluster, showing the default ones included.
Terminal
kubectl get namespaces
Expected OutputExpected
NAME STATUS AGE default Active 10d kube-system Active 10d kube-public Active 10d kube-node-lease Active 10d
This command shows all pods running in the default namespace, which is where resources go if no namespace is specified.
Terminal
kubectl get pods -n default
Expected OutputExpected
NAME READY STATUS RESTARTS AGE my-app-pod-1234567890 1/1 Running 0 2d
→
-n - Specifies the namespace to look in
This command creates a pod named my-nginx in the default namespace because no namespace is specified.
Terminal
kubectl run my-nginx --image=nginx --restart=Never
Expected OutputExpected
pod/my-nginx created
→
--restart=Never - Creates a pod instead of a deployment
This command lists pods in the default namespace by default, showing the pod created in the previous step.
Terminal
kubectl get pods
Expected OutputExpected
NAME READY STATUS RESTARTS AGE my-nginx 1/1 Running 0 10s
Key Concept

If you remember nothing else from this pattern, remember: Kubernetes uses the default namespace automatically when you don't specify one, so your resources go there unless you say otherwise.

Common Mistakes
Not specifying the namespace and expecting the resource to be in a custom namespace.
Kubernetes puts resources in the default namespace if no namespace is given, so your resource won't be where you expect.
Always use the -n flag with kubectl commands to specify the namespace if you want to work outside the default.
Trying to find resources without checking the namespace first.
Resources in other namespaces won't show up unless you specify the namespace or use --all-namespaces.
Use kubectl get pods -n your-namespace or kubectl get pods --all-namespaces to find resources.
Summary
The default namespace is where Kubernetes puts resources if no namespace is specified.
Use 'kubectl get namespaces' to see all namespaces including default ones.
Use the -n flag to specify namespaces when managing resources.

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