Raspberry Pi

Only Raspberry Pi's of Gen4 with 4GB of RAM should be used as worker nodes.


  • update /etc/hosts and /etc/hostname
  • add static DHCP entry
  • reset uuid
    • rm -f /etc/machine-id /var/lib/dbus/machine-id
    • dbus-uuidgen --ensure=/etc/machine-id
    • dbus-uuidgen --ensure
  • reboot
  • configure Docker
    • vi /etc/docker/daemon.json

        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
           "max-size": "100m"
         "storage-driver": "overlay2"
    • systemctl restart docker

  • add Kubernetes packages
    • curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    • echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
    • apt update && apt install -y kubelet kubeadm kubectl
    • apt-mark hold kubectl kubeadm kubelet
  • add Ceph packages
    • apt install -y ceph-common

Upgrading to Buster (Debian 10)

Both iptables and ebtables need to set to legacy values, since the nft flavor that is the automatic default with Buster doesn't work with Docker networking.

update-alternatives --config iptables
## choose legacy
update-alternatices --config ebtables
## choose legacy