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
$ 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
Skeleton/Example of kube config file
Kubernetes Tutorials using EKS – Part 1 – Introduction and Architecture
Kubernetes Tutorials using EKS – Part 2 – Architecture with Master and worker
Kubernetes Tutorials using EKS – Part 3 – Architecture with POD – RC – Deploy – Service
Kubernetes Tutorials using EKS – Part 4 – Setup AWS EKS Clustor
Kubernetes Tutorials using EKS – Part 5 – Namespaces and PODs
Kubernetes Tutorials using EKS – Part 6 – ReplicationControllers and Deployment
Kubernetes Tutorials using EKS – Part 7 – Services
Kubernetes Tutorials using EKS – Part 8 – Volume
Kubernetes Tutorials using EKS – Part 9 – Volume
Kubernetes Tutorials using EKS – Part 10 – Helm and Networking
Latest posts by Rajesh Kumar (see all)
- Installing Jupyter: Get up and running on your computer - November 2, 2024
- An Introduction of SymOps by SymOps.com - October 30, 2024
- Introduction to System Operations (SymOps) - October 30, 2024