- Raspberry Pi 3b+, CM3 or 4
- 16GB+ SDHC card certified A1 or A2 grade to provide sufficient IO performance. Example: SanDisk Extreme microSDHC
- Flash Ubuntu 18.04 LTS 64-bit Raspberry Pi disk image to the SD-card
- Either mount the boot partition on the same machine used to flash the image (Hint:
sudo mkdir -p /mnt/rpi-boot && sudo mount -t vfat -o uid=root /dev/mmcblk0p1 /mnt/rpi-boot
) or boot the Raspberry Pi once to apply the configuration changes below. - Enable the missing cgroups by appending two arguments to
/boot/firmware/nobtcmd.txt
:cgroup_enable=memory cgroup_memory=1
- Reduce GPU shared memory by adding
gpu_mem=16
in the applicable sections in/boot/firmware/config.txt
- Optional: Customize the Cloud-Init user-data file to configure SSH keys, passwords, install extra packages, etc.:
/boot/firmware/user-data
- (Re-)Boot the device
- Then install k3s, disabling any features not necessary for single node edge cluster, using the following command:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.17.5+k3s1 K3S_TOKEN=changeme sh -s - \
--write-kubeconfig-mode 644 --disable traefik,metrics-server,local-storage \
--disable-network-policy --disable-cloud-controller
Notes:
- Available memory after installing k3s in server mode on RPI 3b+: 370MB
- Available memory after installing Rancher Agent: 230MB
- Available memory after installing Fleet Agent: 340MB