Use K3S a lightweight Kubernetes variant well suited to the Raspberry PI https://github.com/rancher/k3s

K8S has a much larger memory requirement (2Gb) hence opting for K3S. 

For the Container runtime containerd is a production grade runtime that has a much smaller foot print than Docker and a much smaller memory requirement 

 

The Raspberry Pi Model 3 A+ has built in wifi. You dont need a keyboard, monitor or ethernet cable, headless setup over SSH is a straight forward process

Download Raspbian Buster Lite from here https://www.raspberrypi.org/downloads/raspbian/ and load onto an SD card

creat an empty file called ssh in the boot folder /rootfs

edit /etc/hosts and set the hostname

127.0.0.1       localhost

::1             localhost ip6-localhost ip6-loopback

ff02::1         ip6-allnodes

ff02::2         ip6-allrouters

127.0.1.1       <your host name>

also set the above hostname in  in /etc/hostname

 

 Disable swap in file /etc/dphys-swapfile

 CONF_SWAPSIZE=0

edit /etc/dhcpcd.conf

 interface eth0

static ip_address=192.168.86.100/24

static routers=192.168.86.1

static domain_name_servers=8.8.8.8

edit /etc/wpa_supplicant/wpa_supplicant.conf and add wifi details

 

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=GB

network={

        ssid="<your networks ssid>"

        psk="<network password>"

        key_mgmt=WPA-PSK

}

 

turn on the pi and SSH in.

As a first step change the password for ui pi from the default raspberry :- 

change passwd

 Configure each Raspberry Pi Node.

 export K3S_URL="https://192.168.86.90:6443"

export K3S_TOKEN="K10943ff2b010e703201da24dd8cbfd15fbb35eb41e7d35f5f6850505f8243c5309::node:237ea8408361f68b605e7751d834602f"

 curl -sfL https://get.k3s.io | sh -

On the master node verify K3S s running and is connected to each node