Setting up kubectl and krew

Setting up kubectl and krew
Photo by Fotis Fotopoulos / Unsplash
💡
These instructions are suited for Debian-based distributions only. Please see official documentations for kubectl and krew for other operating systems.

kubectl installation

sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update && sudo apt-get install -y kubectl
💡
Before continuing you should install autocompletion for kubectl.

krew installation

sudo apt-get update && sudo apt-get install -y git
(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)
# add the krew binary to your path
echo 'export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# Check the installation
kubectl krew

With these commands you should now have kubectl and krew installed.

If you want to use krew by simply typing krew, we can create a symlink pointing to the krew binary using the following command:

ln -s $HOME/.krew/bin/kubectl-krew $HOME/.krew/bin/krew 
💡
Check out this post, where I collected a curated list of awesome kubectl plugins.