0. Requirements and Toolchain
Prepare hardware and install the toolchain.
Toolchain
You will need the following tools installed on your workstation (or on the bastion host, if you use it to access the cluster nodes):
talosctl, the command line client for Talos Linux.
kubectl, the command line client for Kubernetes.
Talm, Cozystack’s own configuration manager for Talos Linux.
curl -sSL https://github.com/cozystack/talm/raw/refs/heads/main/hack/install.sh | sh -s
Hardware Requirements
To run this tutorial, you will need the following setup:
Cluster nodes: three bare-metal servers or virtual machines in the following minimal configuration:
- CPU: 4 cores,
x86
architecture. - RAM: 16 GiB.
- Hard disks:
- HDD1: 32GiB
Primary disk, used for Talos Linux, etcd storage, and downloaded images. - HDD2: 100GiB
Secondary disk, used for user application data.
- HDD1: 32GiB
- OS:
- For
kexec
installation: any Linux distribution able to runkexec
, for example, Ubuntu.
Usingkexec
is a simple way to boot Talos Linux, optimal for this tutorial, but restricted on VMs by some cloud providers. - None, for other installation methods.
- For
- Networking:
- Routable FQDN domain.
If you don’t have one, you can use nip.io with dash notation - Located in the same L2 network segment.
Cozystack can be deployed with a variety of networking options, but for this tutorial it’s best to use a simple configuration.
- Routable FQDN domain.
- Anti-spoofing disabled.
It is required for MetalLB, the load balancer used in Cozystack - If using virtual machines, there are extra requirements:
- CPU passthrough enabled and CPU model set to
host
in the hypervisor settings. - Nested virtualization enabled.
Required for virtual machines and tenant kubernetes clusters.
- CPU passthrough enabled and CPU model set to
For a more detailed explanation of hardware requirements for different setups, refer to the Hardware Requirements
Last modified 2025-07-30: [style] Fix spelling for "bare-metal nodes" vs "bare metal" (7ef8cdb)