Downgrade kubectl version to match minikube k8s version

You can just download the previous version binary and replace the one you have now.

Linux:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.5.2/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

macOS:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.5.2/bin/darwin/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

Windows:

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.5.2/bin/windows/amd64/kubectl.exe

And add it to PATH.

If not follow instructions for other Operating Systems here: https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-binary-via-curl


In my macOS, I was struggling, because I had multiple kubectl executables installed. First you need to remove the existing kubectl binaries. Do the following iteratively until it says command not found: kubectl.

which kubectl
sudo rm -f <path-from-above-command>

Next, follow the kubernetes official documentation to install your specific kubectl version. https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/

  1. If you want to install v1.18.0 for Apple M1 (see the above link for other OS versions)

curl -LO "https://dl.k8s.io/release/v1.18.0/bin/darwin/arm64/kubectl"

  1. Make the kubectl binary executable.

chmod +x ./kubectl

  1. Move the kubectl binary to a file location on your system PATH.

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

sudo chown root: /usr/local/bin/kubectl

  1. Test to ensure the version you installed is up-to-date:

kubectl version --client


What helped me on Centos was running the following:

sudo yum downgrade kubeadm-1.16.9 kubernetes-cni-0.7.5 kubelet-1.16.9 kubectl-1.16.9

Then to disable updates forever, edit /etc/yum.repos.d/Kubernetes.repo and change the line with enabled to enabled=0.


With APT you can install the exact version as well:

sudo apt install kubectl=1.17.2-00