📖 Scenario: You are managing multiple projects in Kubernetes. Each project uses a different namespace to keep resources separate. You want to switch your command-line context to work inside a specific namespace easily.
🎯 Goal: Learn how to switch the current Kubernetes context to a different namespace using kubectl. This helps you run commands inside the right project space without typing the namespace every time.
📋 What You'll Learn
Use kubectl commands to interact with Kubernetes
Understand namespaces as separate project spaces
Switch the current context namespace using kubectl config set-context
Verify the current namespace with kubectl config view --minify
💡 Why This Matters
🌍 Real World
In real Kubernetes projects, namespaces help separate environments like development, testing, and production. Switching namespaces quickly lets you work in the right environment without mistakes.
💼 Career
DevOps engineers and system administrators often switch namespaces to manage resources efficiently and avoid accidental changes in the wrong environment.
Progress0 / 4 steps
1
Check the current Kubernetes context namespace
Run the command kubectl config view --minify --output 'jsonpath={..namespace}' to see the current namespace your kubectl context is set to.
Kubernetes
Hint
This command shows the namespace your kubectl commands will use by default.
2
Set the current context to use the development namespace
Use the command kubectl config set-context --current --namespace=development to switch your current context namespace to development.
Kubernetes
Hint
This command changes the default namespace for your current kubectl context.
3
Verify the namespace has switched to development
Run kubectl config view --minify --output 'jsonpath={..namespace}' again to confirm the namespace is now development.
Kubernetes
Hint
Run the same command as Step 1 to check the namespace again.
4
Display the current namespace in a friendly message
Use echo with command substitution to print: Current namespace is: development by running echo "Current namespace is: $(kubectl config view --minify --output 'jsonpath={..namespace}')".
Kubernetes
Hint
This prints a clear message showing the active namespace.
Practice
(1/5)
1. What does switching the namespace context in Kubernetes help you do?
easy
A. Work easily within a specific namespace without typing it every time
B. Delete all namespaces at once
C. Create a new Kubernetes cluster
D. Change the Kubernetes version
Solution
Step 1: Understand namespaces in Kubernetes
Namespaces organize resources so you can separate projects or teams.
Step 2: Understand switching namespace context
Switching context means your commands default to that namespace, so you don't type it each time.
Final Answer:
Work easily within a specific namespace without typing it every time -> Option A
Quick Check:
Switching namespace context = easier work in one namespace [OK]
Hint: Switching namespace saves typing namespace each command [OK]
Common Mistakes:
Thinking switching namespace deletes namespaces
Confusing namespace with cluster creation
Believing it changes Kubernetes version
2. Which of the following is the correct command to switch the current namespace to dev?
easy
A. kubectl set namespace dev
B. kubectl config set-context --current --namespace=dev
C. kubectl switch namespace dev
D. kubectl change context namespace dev
Solution
Step 1: Recall the correct syntax for switching namespace context
The command uses kubectl config set-context --current --namespace=<name>.
Step 2: Match the command with the namespace dev
Replace <name> with dev exactly as in kubectl config set-context --current --namespace=dev.
Final Answer:
kubectl config set-context --current --namespace=dev -> Option B
Hint: Use 'kubectl config set-context --current --namespace=' [OK]
Common Mistakes:
Using non-existent commands like 'kubectl switch namespace'
Omitting '--current' flag
Using wrong command verbs like 'change' or 'set' alone
3. What will be the output of the command kubectl config view --minify | grep namespace after running kubectl config set-context --current --namespace=testing?
medium
A. namespace: default
B. Error: namespace not found
C. No output
D. namespace: testing
Solution
Step 1: Understand what kubectl config set-context --current --namespace=testing does
This command sets the current context's namespace to testing.
This shows the current context's namespace setting, which should now be testing.
Final Answer:
namespace: testing -> Option D
Quick Check:
Namespace after set-context = testing [OK]
Hint: Check current namespace with 'kubectl config view --minify' [OK]
Common Mistakes:
Expecting default namespace after switching
Thinking command shows all namespaces
Assuming error if namespace does not exist yet
4. You ran kubectl config set-context --current --namespace=prod but your commands still affect the default namespace. What is the likely problem?
medium
A. You did not reload your shell or terminal
B. You used the wrong command to switch namespace
C. Your current context is not set correctly
D. The namespace prod does not exist
Solution
Step 1: Check if the current context is set correctly
If the current context is not the one you expect, switching namespace won't affect your commands.
Step 2: Understand that namespace switching affects only the current context
Switching namespace changes the namespace in the current context, so if the context is wrong, commands still use default namespace.
Final Answer:
Your current context is not set correctly -> Option C
Quick Check:
Namespace switch affects current context only [OK]
Hint: Verify current context with 'kubectl config current-context' [OK]
Common Mistakes:
Assuming shell reload is needed
Thinking namespace must exist before switching
Using wrong command syntax
5. You want to run multiple commands in the staging namespace without typing --namespace=staging each time. Which sequence of commands correctly sets this up and verifies it?
hard
A. kubectl config set-context --current --namespace=staging
kubectl get pods
kubectl config view --minify | grep namespace
B. kubectl namespace staging
kubectl get pods
kubectl config current-context
C. kubectl switch namespace staging
kubectl get pods
kubectl config get-contexts
D. kubectl set namespace staging
kubectl get pods
kubectl config get-namespaces
Solution
Step 1: Set the current context's namespace to staging
Use kubectl config set-context --current --namespace=staging to switch namespace context.
Step 2: Verify by listing pods and checking namespace in current context
Running kubectl get pods uses the new namespace by default. Checking with kubectl config view --minify | grep namespace confirms the namespace is set.
Final Answer:
kubectl config set-context --current --namespace=staging
kubectl get pods
kubectl config view --minify | grep namespace -> Option A
Quick Check:
Set context namespace then verify with config view [OK]
Hint: Set namespace once with config set-context, then run commands [OK]
Common Mistakes:
Using non-existent commands like 'kubectl switch namespace'
Not verifying namespace change
Confusing context commands with namespace commands
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.