Pi K3S Server API

guides/k3s/k3s.png

A guide on how to set up a K3S API Server on a Rasberry Pi 4 4GB model.

Drive

Use Rasberry Pi imager to create a Ubuntu Server on a SD card or a SSD/HD.

Prefer Switching to USB SSD or HD for better performance

Packages

Install these packages

1sudo apt-get update 
2sudo apt upgrade -y
3sudo apt-get install git -y
4sudo apt-get install curl -y

Install ssh and create a key

1sudo apt-get install sshpass -y
2sudo apt-get install openssh-server -y
3ssh-keygen -t ed25519 -C "${k3s_user} ${HOSTNAME}"
4eval $(ssh-agent -s)
5ssh-add ~/.ssh/id_ed25519

Install Needed packages for longhorn, containered and k3s

1sudo apt-get install containerd -y
2sudo apt-get install open-iscsi -y
3sudo apt-get install linux-modules-extra-raspi -y

Install and Deploy K3s

1
2curl -sfL https://get.k3s.io | sh -s - server  --disable servicelb --disable traefik --write-kubeconfig-mode 644 --kube-apiserver-arg default-not-ready-toleration-seconds=30 --kube-apiserver-arg default-unreachable-toleration-seconds=30 --kube-controller-arg node-monitor-period=20s --kube-controller-arg node-monitor-grace-period=20s --kubelet-arg node-status-update-frequency=5s

Get Node Token And Get CLuster Config

1sudo cat /var/lib/rancher/k3s/server/node-token
2sudo cat /etc/rancher/k3s/k3s.yaml