How to install specific version of Kubernetes?

To install specific version of the package it is enough to define it during the apt-get install command:

apt-get install -qy kubeadm=<version>

But in the current case kubectl and kubelet packages are installed by dependencies when we install kubeadm, so all these three packages should be installed with a specific version:

$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
  echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
  sudo apt-get update -q && \
  sudo apt-get install -qy kubelet=<version> kubectl=<version> kubeadm=<version>

where available <version> is:

curl -s https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages | grep Version | awk '{print $2}'

For your particular case it is:

$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - && \
  echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list && \
  sudo apt-get update -q && \
  sudo apt-get install -qy kubelet=1.9.6-00 kubectl=1.9.6-00 kubeadm=1.9.6-00

None of the answers get small tip about where get proper package version. So my solution for debian 10 (buster) how to install not latest (1.20) but 1.18 version of kubeadm

sudo apt-get update && sudo apt-get install -y apt-transport-https curl

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

apt update

There is the most important thing I got a problem :). Get available package versions

apt list -a kubeadm

From the output select which you want to install

# apt list -a kubeadm
Listing... Done
kubeadm/kubernetes-xenial 1.20.0-00 amd64 [upgradable from: 1.18.13-00]
kubeadm/kubernetes-xenial 1.19.5-00 amd64
kubeadm/kubernetes-xenial 1.19.4-00 amd64
kubeadm/kubernetes-xenial 1.19.3-00 amd64
kubeadm/kubernetes-xenial 1.19.2-00 amd64
kubeadm/kubernetes-xenial 1.19.1-00 amd64
kubeadm/kubernetes-xenial 1.19.0-00 amd64
kubeadm/kubernetes-xenial,now 1.18.13-00 amd64 [installed,upgradable to: 1.20.0-00]
kubeadm/kubernetes-xenial 1.18.12-00 amd64
kubeadm/kubernetes-xenial 1.18.10-00 amd64

For me it was latest version for 1.18: 1.18.13-00
And now simply specify this version for packages

apt install -y kubeadm=1.18.13-00 kubelet=1.18.13-00 kubectl=1.18.13-00

Hope it could save somebody time and nervous


on Mac to install v1.8.5 of kubernetes follow the below steps

Get the kubectl binary.

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.8.5/bin/darwin/amd64/kubectl

Make the kubectl binary executable.

chmod +x ./kubectl

Move the kubectl executable to /usr/local/bin.

sudo mv ./kubectl /usr/local/bin/kubectl

Tags:

Kubernetes