Kubectl Set Namespace New! Guide
kubectl set namespace dev-env
❌ → Make sure your context is set first with kubectl config use-context . When to use kubectl set namespace ✅ You frequently work in one namespace and are tired of -n flag. ✅ You’re switching between namespaces often. ✅ You want to avoid accidentally running commands in the wrong namespace. Would you like a comparison with kubens (from kubectx) or tips for scripting namespace changes?
kubectl set namespace --current <namespace> 1. Check current namespace context kubectl config get-contexts Look under the NAMESPACE column for your current context. If empty, it means default namespace is used. 2. Change to a different namespace kubectl set namespace my-namespace Output example: kubectl set namespace
kubectl config get-contexts Now the NAMESPACE column should show my-namespace . kubectl get pods This will list pods only in my-namespace , not all namespaces. Important notes | Feature | Behavior | |---------|----------| | Works on | Current context only | | Persistent | Yes — saved in kubeconfig | | Overwrites | Existing namespace in current context | | No effect on | Existing resources, deployments, services | Examples Set namespace for current context:
Here’s a practical guide to using kubectl set namespace — a helpful command for managing namespace contexts in Kubernetes. What it does kubectl set namespace changes the default namespace for your current context in the kubeconfig file. It’s an alternative to kubectl config set-context --current --namespace=<namespace> . ⚠️ It does not change the namespace of existing resources — it changes the default namespace for future kubectl commands. Syntax kubectl set namespace <namespace> Or explicitly: kubectl set namespace dev-env ❌ → Make sure
kubectl set namespace ""
❌ → In older versions (<1.19), you needed --current . Modern versions assume --current by default. ✅ You want to avoid accidentally running commands
kubectl config get-contexts kubectl set namespace staging kubectl config get-contexts | Purpose | Command | |---------|---------| | Temporary namespace for one command | kubectl get pods -n my-namespace | | Change context namespace explicitly | kubectl config set-context --current --namespace=my-namespace | | View current namespace | kubectl config view --minify -o jsonpath='..namespace' | Common mistakes ❌ Expecting it to update existing objects → No, it only changes default for future commands.