I'm working with five small single board computers (SBCs), each having 2 GB of RAM, and I want to set up a cluster using Talos OS. I'm curious about how to best configure the nodes—for instance, what is the ideal number for control nodes and worker nodes to ensure high availability? Considering I'm the only user, I think CPU usage won't be an issue, but I want to know how this setup would change if I could increase the RAM to 3 or 4 GB.
4 Answers
I’m also building a cluster with Talos, but I’m still figuring things out. For control plane nodes, Sidero suggests a minimum of 2 cores and 2 GB of RAM, which only allows for basic functions like the Kube API Server and etcd. Using control nodes for application workloads could lead to issues with stability and resource contention. As for whether 3 or 4 GB is sufficient, that really depends on what services you plan to run. Keep in mind that Talos usually has swap disabled by default, which may affect your performance if you upgrade RAM.
Sidero has actually done some testing on these setups. You might find useful results in their blog about which Kubernetes setup is the smallest.
If you're the only one using the cluster, I'm curious why high availability (HA) is a concern for you. If this is more of a learning exercise, I'd suggest setting up three control plane nodes and letting workloads run on those. You could also go with one control node and four workers if that works better for your setup.
Have you looked into k3s? It's lightweight and might work better for your needs with the limited resources you have.
What’s the advantage of using k3s for this situation?

Yeah, I'm just interested in HA for the sake of learning.