Install Kubernetes Packages

By package manager

Add the Kubernetes repository:

$ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
$ echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

Install kubelet, kubeadm and kubectl, and pin their versions:

$ sudo apt update
$ sudo apt install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl
kubelet set on hold.
kubeadm set on hold.
kubectl set on hold.
$ kubeadm version -o yaml
clientVersion:
  buildDate: "2025-03-11T19:57:38Z"
  compiler: gc
  gitCommit: 32cc146f75aad04beaaa245a7157eb35063a9f99
  gitTreeState: clean
  gitVersion: v1.32.3
  goVersion: go1.23.6
  major: "1"
  minor: "32"
  platform: linux/amd64

Default output style is Go style, which is why -o yaml is needed.

Tip

If you want to upgrade these components, you can unpin them by:

$ sudo apt-mark unhold kubelet kubeadm kubectl
Canceled hold on kubelet.
Canceled hold on kubeadm.
Canceled hold on kubectl.

Dowload kubectl manually

kubectl can be installed anywhere to access k8s system.

For Intel silicon:

$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl"

For Apple silicon:

$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/arm64/kubectl"
$ chmod +x kubectl
$ sudo mv kubectl /usr/local/bin

Check the versions:

$ kubectl version
Client Version: v1.32.0
Kustomize Version: v5.5.0
Server Version: v1.32.0