Install and Set Up kubectl on Linux
- Before you begin
- Install kubectl on Linux
- Verify kubectl configuration
- Optional kubectl configurations and plugins
- What's next
Before you begin
You must use a kubectl adaptation that is within one minor version deviation of your bunch. For example, a v1.23 client can communicate with v1.22, v1.23, and v1.24 control planes. Using the latest compatible version of kubectl helps avoid unanticipated issues .
Install kubectl on Linux
The following methods exist for installing kubectl on Linux :
Install kubectl binary with curl on Linux
Download the latest handout with the command :
curl -LO `` hypertext transfer protocol : //dl.k8s.io/release/$ (curl -L -s https://dl.k8s.io/release/stable.txt ) /bin/linux/amd64/kubectl ''
Reading: Install and Set Up kubectl on Linux
Note: To download a specific adaptation, replace the
$(curl -L -s https://dl.k8s.io/release/stable.txt)parcel of the command with the specific version .
For model, to download translation v1.23.0 on Linux, type :
curl -LO https://dl.k8s.io/release/v1.23.0/bin/linux/amd64/kubectl
Validate the binary ( optional )
Download the kubectl checksum file :
curl -LO `` hypertext transfer protocol : //dl.k8s.io/ $ (curl -L -s https://dl.k8s.io/release/stable.txt ) /bin/linux/amd64/kubectl.sha256 ''
Validate the kubectl binary star against the checksum charge :
echo `` $ (
kubectl ” | sha256sum –check
If valid, the output is :
If the check fails,
sha256 exits with nonzero condition and prints output exchangeable to :
kubectl: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
Note: Download the same translation of the binary and checksum .
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
Note: If you do not have solution access on the prey system, you can placid install kubectl to the
~/.local/bin directory :
chmod +x kubectl mkdir -p ~/.local/bin mv ./kubectl ~/.local/bin/kubectl # and then append ( or prepend ) ~/.local/bin to $ PATH
kubectl version --client
Or use this for detail view of adaptation :
kubectl version --client --output=yaml
Install using native package management
aptbox exponent and install packages needed to use the Kubernetes
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl
Download the Google Cloud populace sign key :
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
Add the Kubernetes
echo `` debutante [ signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg ] hypertext transfer protocol : //apt.kubernetes.io/ kubernetes-xenial chief '' | sudo tee /etc/apt/sources.list.d/kubernetes.list
aptbox index with the new repository and install kubectl :
sudo apt-get update sudo apt-get install -y kubectl
EOFsudo yum install -y kubectl
Install using other package management
If you are on Ubuntu or another Linux distribution that support snap package coach, kubectl is available as a catch application .
snap install kubectl --classic kubectl version --client
If you are on Linux and using Homebrew package director, kubectl is available for installation .
brew install kubectl kubectl version --client
Verify kubectl configuration
In order for kubectl to find and access a Kubernetes bunch, it needs a kubeconfig file, which is created mechanically when you create a cluster using kube-up.sh or successfully deploy a Minikube cluster. By default, kubectl shape is located at
Check that kubectl is properly configured by getting the bunch state :
If you see a URL response, kubectl is correctly configured to access your bunch .
If you see a message alike to the follow, kubectl is not configured correctly or is not able to connect to a Kubernetes bunch .
The connection to the server
was refused - did you specify the right host or port?
For example, if you are intending to run a Kubernetes bunch on your laptop ( locally ), you will need a tool like Minikube to be installed first and then re-run the commands stated above .
If kubectl cluster-info returns the url response but you ca n’t access your cluster, to check whether it is configured by rights, use :
kubectl cluster-info dump
Optional kubectl configurations and plugins
Enable shell autocompletion
kubectl provides autocompletion support for Bash, Zsh, Fish, and PowerShell, which can save you a fortune of typing .
Below are the procedures to set up autocompletion for Bash, Fish, and Zsh .
The kubectl completion handwriting for Bash can be generated with the command
kubectl completion bash. Sourcing the completion script in your blast enables kubectl autocompletion .
however, the completion script depends on bash-completion, which means that you have to install this software first ( you can test if you have bash-completion already installed by running
type _init_completion ) .
bash-completion is provided by many software managers ( see here ). You can install it with
apt-get install bash-completion or
yum install bash-completion, etc .
The above commands create
/usr/share/bash-completion/bash_completion, which is the main script of bash-completion. Depending on your box director, you have to manually beginning this file in your
~/.bashrc file .
To find out, reload your shell and run
type _init_completion. If the command succeeds, you ‘re already set, otherwise add the following to your
~/.bashrc file :
Reload your shell and verify that bash-completion is correctly installed by typing
type _init_completion .
Enable kubectl autocompletion
You immediately need to ensure that the kubectl completion script gets sourced in all your shell sessions. There are two ways in which you can do this :
echo 'source < ( kubectl completion bash ) ' >>~/.bashrc
kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl > /dev/null
If you have an alias for kubectl, you can extend plate completion to work with that alias :
echo 'alias k=kubectl ' >>~/.bashrc repeat 'complete -F __start_kubectl kelvin ' >>~/.bashrc
Note: bash-completion sources all completion scripts in
Both approaches are equivalent. After reloading your shell, kubectl autocompletion should be working .
The kubectl completion handwriting for Fish can be generated with the command
kubectl completion fish. Sourcing the completion script in your shell enables kubectl autocompletion .
To do so in all your shell sessions, add the follow line to your
~/.config/fish/config.fish file :
kubectl completion fish | beginning
After reloading your shell, kubectl autocompletion should be working .
The kubectl completion script for Zsh can be generated with the command
kubectl completion zsh. Sourcing the completion script in your shell enables kubectl autocompletion .
To do thus in all your blast sessions, add the following to your
~/.zshrc file :
source < (kubectl completion zsh )
If you have an alias for kubectl, kubectl autocompletion will automatically work with it .
After reloading your plate, kubectl autocompletion should be working .
If you get an mistake like
2: command not found: compdef, then add the following to the begin of your
~/.zshrc file :
autoload -Uz compinit compinit
kubectl convert plugin
A plugin for Kubernetes command-line tool
kubectl, which allows you to convert manifests between different API versions. This can be particularly helpful to migrate manifests to a non-deprecated api version with newer Kubernetes release. For more information, visit migrate to non deprecate apis
Download the latest publish with the command :
curl -LO `` hypertext transfer protocol : //dl.k8s.io/release/ $ (curl -L -s https://dl.k8s.io/release/stable.txt ) /bin/linux/amd64/kubectl-convert ''
Validate the binary ( optional )
Download the kubectl-convert checksum file :
curl -LO `` hypertext transfer protocol : //dl.k8s.io/ $ (curl -L -s https://dl.k8s.io/release/stable.txt ) /bin/linux/amd64/kubectl-convert.sha256 ''
Validate the kubectl-convert binary against the checksum file :
echo `` $ (
kubectl-convert '' | sha256sum --check
If valid, the output signal is :
If the determine fails,
sha256 exits with nonzero condition and prints output like to :
kubectl-convert: FAILED sha256sum: WARNING: 1 computed checksum did NOT match
Note: Download the same adaptation of the binary and checksum .
sudo install -o root -g root -m 0755 kubectl-convert /usr/local/bin/kubectl-convert
kubectl convert --help
If you do not see an error, it means the plugin is successfully installed .