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

134,679

Solution 1

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.

Solution 2

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

Solution 3

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

Solution 4

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
Share:
134,679

Related videos on Youtube

Jeremy Lewi
Author by

Jeremy Lewi

I'm an engineer at Google working on Google Cloud Machine Learning Engine. CMLE is a managed service for TensorFlow. The relevant SO tag is google-cloud-ml-engine.

Updated on February 19, 2021

Comments

  • Jeremy Lewi
    Jeremy Lewi over 3 years

    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?

  • Randy L
    Randy L about 6 years
    kubectl config unset contexts worked real nice thanks!
  • Muhamed Huseinbašić
    Muhamed Huseinbašić almost 4 years
    I see there is kubectl config get-contexts and kubectl config get-clusters, but I don't see kubectl config get-users, how to list these?
  • Muhamed Huseinbašić
    Muhamed Huseinbašić over 3 years
    Another SO user reached out to me via e-mail with the following command for listing users: kubectl config view -o jsonpath='{.users[*].name}' (their source was kubectl cheatsheet)
  • Devplex
    Devplex over 2 years
    These days there's also kubectl config delete-user my-user
  • L F
    L F over 2 years
    for users you can do kubectl config unset users