Kubernetes How do I delete clusters and contexts from kubectl config?
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.
Understanding Kubernetes Configurations: Deleting Clusters and Contexts from kubectl Config
Kubernetes has rapidly become an essential tool for managing containerized applications across many hosts, offering high-level scalability and automation. One of the most standout features is kubectl, the command line tool that works with Kubernetes clusters for deploying applications, inspecting and managing them, among other tasks. A crucial component of kubectl is its configuration context that determines which cluster and user context it should use. This guide will go through the intricacies of deleting clusters and contexts from your kubectl config file with practical examples.
Background on kubectl Configuration
When you interact with Kubernetes using kubectl, it relies on a configuration file, typically found at $HOME/.kube/config, to determine context, users, and clusters. Here's a brief look at the structure of this config file:
In this YAML configuration, it defines clusters, contexts, and user credentials.
Deleting Clusters from kubectl
Clusters are defined in the clusters list in the config file. Each entry corresponds to a Kubernetes cluster. To delete a cluster, you need to remove the specific cluster entry associated with that name. Suppose you want to delete "cluster1":
Using kubectl config unset:
The kubectl config command simplifies operations on the kubeconfig file.
This command deletes the configuration related to "cluster1" from the config file. In scenarios where the cluster is no longer needed or its access is revoked, this step ensures cleanliness in the configuration.
Deleting Contexts from kubectl
Contexts in Kubernetes associate clusters with users and define how users access those clusters. A context offers a way to refer to multiple components of the configuration in a single operation.
Using kubectl config delete-context:
If "context1" is no longer required, perhaps due to changing environments or role assignments, you can delete it using:
This removes "context1" from your list of contexts. Post-execution, this context will not appear in the context list when running kubectl config get-contexts.
Practical Example
Consider a scenario where a developer named Alice has completed her tasks on a test cluster and wants to ensure her config file reflects this change:
- List current clusters:
- Delete the unwanted cluster "test-cluster":
- List current contexts:
- Delete the related context "test-context":
By performing these steps, Alice cleans up her Kubernetes configuration file, streamlining her work environment and reducing clutter.
Managing Multiple Configurations
Should you work with multiple environments or clouds, managing configurations becomes crucial:
- View active context:
- Switch context:
Adjust your current working environment with:
Summary Table
| Operation | Command | Description |
| List Clusters | kubectl config get-clusters | Displays all configured clusters in the kubeconfig file. |
| Delete Cluster | kubectl config unset clusters.<cluster_name> | Removes a specific cluster entry from the configuration. |
| List Contexts | kubectl config get-contexts | Displays all available contexts. |
| Delete Context | kubectl config delete-context <context_name> | Deletes the specified context. |
| Current Context | kubectl config current-context | Shows the current active context. |
| Switch Context | kubectl config use-context <desired-context> | Switches to the specified context. |
Conclusion
Kubernetes and its CLI tool kubectl provide powerful, flexible pathways to manage clusters and contexts. Understanding and utilizing these tools facilitates streamlined operations across environments, promoting cleaner configurations and efficient workflow management. Whether adding, using, or removing clusters and contexts, these operations enable seamless transitions and maintenance of Kubernetes cloud infrastructures.
Related reading
- Kubernetes How do I delete PV in the correct manner
- Kubernetes How do I get all pods in a namespace using the python api?
- Kubernetes How do I know what node I'm on?
- Kubernetes How do we List all objects modified in N days in a specific namespace?
- Kubernetes how to access a service from another namespace
- kubernetes How to deattach from an attached pod
- Kubernetes how to debug CrashLoopBackOff
- Kubernetes How to delete PODs based on age/creation time

System Design Fundamentals
Build a strong foundation in designing scalable, reliable distributed systems.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
System Design practice on Codemia
Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.