Adding and removing nodes
Requirements, the procedure in the Manager, what happens technically and why a cluster should have three nodes.
Requirements
- A prepared EasyUC VM with the IP address you enter in the Manager.
- The first node can reach this VM via SSH on TCP 15222.
- Recommended: all nodes in the same network segment, with no firewall filtering between them. The ports are listed under Between cluster nodes.
Adding a node in the Manager
-
Open the node overview in the Manager.
-
Choose Add node.
-
Enter the IP address of the prepared VM and, optionally, a name.
-
Confirm. The Manager sets up the node, which then appears in the overview with its CPU and RAM usage.
What happens technically
The Manager sets up the new node on its own:
- The Manager connects to the new VM via SSH on TCP 15222.
- It sets the hostname and installs K3s from the appliance's local files.
- The node joins the cluster with the cluster token, via the Kubernetes API on TCP 6443.
Every node is a server
Every added node joins as a full K3s server. It is part of the control plane, an etcd member and also runs workloads. Pure worker nodes are not offered.
This means every node counts towards the etcd majority, see Why three nodes.
Removing a node
When you remove a node in the Manager, the following happens:
-
Cordon
No new workloads are scheduled on the node.
-
Drain
Workloads move to other nodes.
-
Uninstall
The node is uninstalled.
Important
Every service runs as a single instance. During the drain, the components on the node are stopped and restarted on another node, so the affected services are briefly interrupted. Remove nodes in a maintenance window.
Note
The last node cannot be removed. The IP address can only be changed on single-node installations.
Why three nodes
The control plane stays operational as long as a majority of the server nodes is available. This is a general principle of etcd and therefore of Kubernetes.
| Server nodes | Majority | Tolerated failures | Meaning |
|---|---|---|---|
| 1 | 1 | 0 | No redundancy |
| 2 | 2 | 0 | No gain in fault tolerance. If one node fails, the majority is lost. |
| 3 | 2 | 1 | Survives the loss of one node. Our recommendation. |
| 5 | 3 | 2 | Survives the loss of two nodes. |
For redundancy we recommend three nodes, and in general an odd number. This protects the control plane. How the services themselves react to a failure is described under Redundancy.
Component placement
- Several web and API components must not run twice on the same node (anti-affinity per host).
teams-sbcruns on the node whereacd-mediaruns.- Both use the host network, so RTP firewall rules and the 1:1 NAT for Teams must point to that node.