Versions as of 2022-12-25, verified with Kubernetes 1.26, Ubuntu 22.10 and Debian 11.6 (at least until after join and weavenet works).

This is a quickie summary, just to bring everything needed to one place. Maybe speeds things up.

Install containerd, runc, cni-bin:

sudo -i
mkdir downloads
cd downloads

From: https://kubernetes.io/docs/setup/production-environment/container-runtimes/:

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

# sysctl params required by setup, params persist across reboots
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

# Apply sysctl params without reboot
sudo sysctl --system

From: https://github.com/containerd/containerd/blob/main/docs/getting-started.md:
Copy Link for latest version from https://github.com/containerd/containerd/releases and:
wget https://github.com/containerd/containerd/releases/download/v1.6.14/containerd-1.6.14-linux-amd64.tar.gz
tar Cxzvf /usr/local containerd-1.6.14-linux-amd64.tar.gz
wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
mkdir -p /usr/local/lib/systemd/system
cp containerd.service /usr/local/lib/systemd/system/containerd.service

From https://github.com/opencontainers/runc/releases
Copy Link for latest version and:
wget https://github.com/opencontainers/runc/releases/download/v1.1.4/runc.amd64
install -m 755 runc.amd64 /usr/local/sbin/runc

From: https://github.com/containernetworking/plugins/releases:
wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
mkdir -p /opt/cni/bin
tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.1.1.tgz

Generate containerd default config:
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

Edit the config and set SystemdCgroup = true in section [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options].

Start containerd via systemd:
systemctl daemon-reload
systemctl enable --now containerd


Install kubeadm, kubectl and kubelet:

From: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Hopefully it all worked out. On a debian system I had to systemctl enable --now systemd-resolved ...

Arno Krause, devlog@golden-eagle.net