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.
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 ): kubectl set-context
kubectl get ns # Output shows resources in default namespace (or whatever is set) To change the default namespace for your current context to backend : You have a context called staging , but
kubectl set-context development --namespace=testing Need to repoint a context to a different cluster? You can do that without deleting and recreating it. This is non-destructive; you can always override it