November 2022

This is supposed to be a quick install guide and serve as a quick summary from several guides from the web.
There won't be any indepth explanations.

Prerequisite: Raspberry Pi 4 (recommended 8GB) with Ubuntu Server 22.10

Make sure everything is up to date:

sudo apt update
sudo apt upgrade


Append (same line) /boot/firmware/cmdline.txt with:

cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1

Reboot the Pi.

Not sure if these are absolutely needed:

sudo apt install net-tools
sudo apt install bridge-utils
sudo apt install cpu-checker
sudo apt install cgroup-lite


Install docker:

From https://docs.docker.com/engine/install/ubuntu/:

sudo apt install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
usermod -aG docker [user you want to run docker as rootless]

From https://docs.docker.com/engine/security/rootless/:

sudo apt install uidmap
systemctl disable --now docker.service docker.socket
sudo apt install dbus-user-session

From: https://rootlesscontaine.rs/getting-started/common/cgroup2/#enabling-cpu-cpuset-and-io-delegation
via https://pullanswer.com/questions/error-userns-cpu-controller-needs-to-be-delegated-when-starting-minikube-with-rootless-docker

sudo mkdir -p /etc/systemd/system/user@.service.d
cat <<EOF | sudo tee /etc/systemd/system/user@.service.d/delegate.conf
[Service]
Delegate=cpu cpuset io memory pids
EOF
sudo systemctl daemon-reload

(!)As not-root user:

dockerd-rootless-setuptool.sh install

Install minikube/kubectl:

From https://minikube.sigs.k8s.io/docs/start/:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-arm64
sudo install minikube-linux-arm64 /usr/local/bin/minikube
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/arm64/kubectl
sudo install kubectl /usr/local/bin/


Hope it helps.
Arno Krause, devlog@golden-eagle.net