kubectl set-context production --cluster=aws-prod --user=admin-user This creates the context but does not switch to it. To switch, you would run kubectl use-context production . This is the most common real-world use case. You have a context called staging , but you are tired of typing -n backend for every command.
export KUBECONFIG=~/.kube/config:~/secrets/gke-config kubectl set-context gke-prod --cluster=gke-prod --user=gke-user The command will update the first writable file in the list (usually the first one). kubectl set-context is deceptively simple. It does one small thing—modifying a field in a text file—but that small thing is the foundation of safe, efficient multi-cluster Kubernetes administration. kubectl set-context
kubectl set-context --current --namespace=backend Output: You have a context called staging , but
# Good: Relies on context namespace kubectl get pods kubectl get pods -n default 3. Verify Before You Execute Create a shell alias to show your current context in your prompt: It does one small thing—modifying a field in
Context "staging" modified. Now, any kubectl get pods will automatically show pods in the backend namespace. This is non-destructive; you can always override it with -n frontend when needed. You don't have to be using a context to modify it. To change the default namespace for the development context (even if you are currently in production ):
The command kubectl set-context allows you to create or modify these profiles without ever touching a YAML file. The basic syntax is:
kubectl set-context development --namespace=testing Need to repoint a context to a different cluster? You can do that without deleting and recreating it.