Kubernetes: How do I delete clusters and contexts from kubectl config?

kubectl config view shows contexts and clusters corresponding to clusters that I have deleted.

How can I remove those entries?

The command

kubectl config unset clusters

appears to delete all clusters. Is there a way to selectively delete cluster entries? What about contexts?

4 Answers

kubectl config unset takes a dot-delimited path. You can delete cluster/context/user entries by name. E.g.

kubectl config unset users.gke_project_zone_name
kubectl config unset contexts.aws_cluster1-kubernetes
kubectl config unset clusters.foobar-baz

Side note, if you teardown your cluster using cluster/kube-down.sh (or gcloud if you use Container Engine), it will delete the associated kubeconfig entries. There is also a planned kubectl config rework for a future release to make the commands more intuitive/usable/consistent.

3

For clusters and contexts you can also do

kubectl config delete-cluster my-cluster
kubectl config delete-context my-cluster-context

There's nothing specific for users though, so you still have to do

kubectl config unset users.my-cluster-admin
2

Run command below to get all contexts you have:

$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* Cluster_Name_1 Cluster_1 clusterUser_resource-group_Cluster_1

Delete context:

 $ kubectl config delete-context Cluster_Name_1

Unrelated to question, but maybe a useful resource.

Have a look at kubectx + kubens: Power tools for kubectl.

They make it easy to switch contexts and namespace + have the option to delete

e.g.,

kubectx -d my-context

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like