Upgrade & Secure Your Future with DevOps, SRE, DevSecOps, MLOps!

We spend hours on Instagram and YouTube and waste money on coffee and fast food, but won’t spend 30 minutes a day learning skills to boost our careers.
Master in DevOps, SRE, DevSecOps & MLOps!

Learn from Guru Rajesh Kumar and double your salary in just one year.


Get Started Now!

Kubernetes Commands: kubectl config – Tutorials and Examples

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

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.