This guide assume basic knowledge with Linux deployment on your own platform
For a more detailed guide on Ubuntu Server’s capabilities and its configuration, take a look at the Community Ubuntu Server documentation.
Step 1: Installation
For the purpose of this exercise, we’ll only need Ubuntu Server (minimized) to run on 1 sockets, 2 cores cpu and 4GB memory.
Step 2: Configuration
Set your local timezone
sudo timedatectl set-timezone 'Australia/Sydney'
Install basic tools and utilities
sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y
# If you also deploying on Proxmox VM, otherwise remove qemu-guest-agent below.
sudo apt install tmux software-properties-common ca-certificates curl lsb-release net-tools bind9-dnsutils iputils-ping wget git nano vim s3cmd haproxy keepalived ripgrep jq kustomize qemu-guest-agent -y
# If you have/use ssh keys
echo "ssh-ed25519 XXXXxxx email@example.com" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Extend root volume if needed
# Check free space in VG:
sudo vgdisplay ubuntu-vg | grep "Free PE"
# Extend your root LV
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
# Resize the filesystem (ext4 example)
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
Install Docker compose and plugins
# Add Docker's official GPG key:
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
# Give yourself access to run docker
sudo usermod -aG docker $USER
newgrp docker
Step 3: Get tools for Talos/Kubernetes
These are some basic binary I use:
- Argocd CLI
- Cilium
- Helm
- JQ
- KUBECTL
- KUSTOMIZE
- TALOSCTL
- YQ
- KUBESEAL
Download and copy them to /usr/local/bin folder and make them executable
sudo chmod +x /usr/local/bin/*
You can also placed them in your home subfolder if you don’t have root access
# Copy to ~/bin
# Make them executable
chmod +x ~/bin/*
# Add ~/bin folder to your active environment path
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
