💻 Machine Preparation
System requirements
📍 k3s default behaviour is that all nodes are able to run workloads, including control nodes. Worker nodes are therefore optional.
📍 If you have 3 or more nodes it is strongly recommended to make 3 of them control nodes for a highly available control plane.
📍 Ideally you will run the cluster on bare metal machines.
| Role | Cores | Memory | System Disk |
|---|---|---|---|
| Control | 4 (6*) | 8GB (24GB*) | 100GB (500GB*) SSD/NVMe |
| Worker | 4 (6*) | 8GB (24GB*) | 100GB (500GB*) SSD/NVMe |
| * recommended |
Debian for AMD64
Download the latest stable release of Debian, then follow this guide to get it installed.
Deviations from the guide:
Choose "Guided - use entire disk" Choose "All files in one partition" Delete Swap partition Uncheck all Debian desktop environment options[Post install] Remove CD/DVD as apt source
su - sed -i '/deb cdrom/d' /etc/apt/sources.list apt update exit[Post install] Enable sudo for your non-root user
su - apt update apt install -y sudo usermod -aG sudo ${username} echo "${username} ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/${username} exit newgrp sudo sudo apt update[Post install] Add SSH keys (or use
ssh-copy-idon the client that is connecting)- Add with
ssh-copy-id
ssh-copy-id -i ~/.ssh/id_ed25519 <user>@<host>- Add with github
📍 First make sure your ssh keys are up-to-date and added to your github account as instructed.
mkdir -m 700 ~/.ssh sudo apt install -y curl curl https://github.com/${github_username}.keys > ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys- Add with