The kubectl command-line tool uses kubeconfig files(file named with – config) to find the information it needs to choose a cluster and communicate with the API server of a cluster.
Note:
A file that is used to configure access to clusters is called a kubeconfig file. This is a generic way of referring to configuration files. It does not mean that there is a file named kubeconfig.
How to set kubeconfig file to kubectl?
- Method 1 – By default, kubectl looks for a file named config in the $HOME/.kube directory.
- Method 2 – You can specify other kubeconfig files by setting the KUBECONFIG environment variable or
- Method 3 – You can specify other kubeconfig files by setting the –kubeconfig flag.
The loading order follows these rules:
- Rules 1 – If the –kubeconfig flag is set, then only that file is loaded. The flag may only be set once and no merging takes place.
- Rules 2 – If $KUBECONFIG environment variable is set, then it is used as a list of paths (normal path delimiting rules for your system). These paths are merged. When a value is modified, it is modified in the file that defines the stanza. When a value is created, it is created in the first file that exists. If no files in the chain exist, then it creates the last file in the list.
- Rules 3 – Otherwise, ${HOME}/.kube/config is used and no merging takes place.
$ kubectl help config
Available Commands:
current-context Displays the current-context
delete-cluster Delete the specified cluster from the kubeconfig
delete-context Delete the specified context from the kubeconfig
get-clusters Display clusters defined in the kubeconfig
get-contexts Describe one or many contexts
rename-context Renames a context from the kubeconfig file.
set Sets an individual value in a kubeconfig file
set-cluster Sets a cluster entry in kubeconfig
set-context Sets a context entry in kubeconfig
set-credentials Sets a user entry in kubeconfig
unset Unsets an individual value in a kubeconfig file
use-context Sets the current-context in a kubeconfig file
view Display merged kubeconfig settings or a specified kubeconfig file
Displays the kubectl config current-context command help.
$ kubectl config current-context --help
$ kubectl config view
$ kubectl config get-contexts --help
# List all the contexts in your kubeconfig file
$ kubectl config get-contexts
# Describe one context in your kubeconfig file.
$ kubectl config get-contexts my-context
$ kubectl config get-clusters --help
# List the clusters kubectl knows about
$ kubectl config get-clusters
$ kubectl config use-context --help
# Use the context for the minikube cluster
$ kubectl config use-context minikube
$ kubectl config set-cluster --help
# Set only the server field on the e2e cluster entry without touching other values.
$ kubectl config set-cluster e2e --server=https://1.2.3.4
# Embed certificate authority data for the e2e cluster entry
$ kubectl config set-cluster e2e --certificate-authority=~/.kube/e2e/kubernetes.ca.crt
# Disable cert checking for the dev cluster entry
$ kubectl config set-cluster e2e --insecure-skip-tls-verify=true
$ kubectl config set-context --help
# Set the user field on the gce context entry without touching other values
kubectl config set-context gce --user=cluster-admin
$ kubectl config set-credentials --help
Code language: JavaScript (javascript)
$ kubectl options
--certificate-authority='': Path to a cert file for the certificate authority
--client-certificate='': Path to a client certificate file for TLS
--client-key='': Path to a client key file for TLS
--cluster='': The name of the kubeconfig cluster to use
--context='': The name of the kubeconfig context to use
--insecure-skip-tls-verify=false: If true, the server's certificate will not be checked for
validity. This will make your HTTPS connections insecure
--kubeconfig='': Path to the kubeconfig file to use for CLI requests.
--token='': Bearer token for authentication to the API server
--user='': The name of the kubeconfig user to use
--username='': Username for basic authentication to the API server
--password='': Password for basic authentication to the API server
Code language: PHP (php)
Skeleton/Example of kube config file
I’m Rajesh Kumar, a DevOps, SRE, DevSecOps, Cloud, and Platform Engineering expert passionate about sharing practical knowledge, real-world experiences, and industry best practices. I have worked at Cotocus and regularly write about technology, travel, investing, health, product reviews, and digital marketing through my various platforms.
I publish technical articles at DevOps School, travel stories at Holiday Landmark, stock market insights at Stocks Mantra, health and fitness guidance at My Medic Plus, product reviews at TrueReviewNow, and SEO and digital marketing strategies at Wizbrand.
Find Trusted Cardiac Hospitals
Compare heart hospitals by city and services — all in one place.
Explore Hospitals