Installing RKE2 for Traceable SMP¶
This guide explains how to install RKE2 (Rancher Kubernetes Engine 2) for a Traceable SMP deployment using the clustermgr CLI.
Prerequisites¶
Before starting the RKE2 installation, ensure you have:
- Downloaded the Traceable Platform package on each cluster node
- Root or sudo access on all nodes
- Network connectivity between all nodes
- A default route configured on each node
iptablesorxtables-nftinstalled- Ports 9345 and 6443 open between all nodes (and from agents to server/LB)
- (Optional) Load balancer configured for HA setup
Overview¶
RKE2 installation is handled end-to-end by clustermgr. The installer automatically performs all pre-install checks and system configuration (swap, kernel modules, sysctl, NetworkManager, conflicting services), installs RKE2 binaries, and starts the RKE2 service.
The general command pattern is:
Environment variables control the behavior of each node installation. The key variables are:
| Variable | Description | Default |
|---|---|---|
RKE2_VERSION |
RKE2 version to install (e.g. v1.35.3+rke2r3) |
Required |
INSTALL_RKE2_TYPE |
Node role: server or agent |
server |
RKE2_SERVER_URL |
URL of the first server node (required for additional servers and agents) | — |
RKE2_TOKEN |
Cluster join token (required for additional servers and agents) | — |
RKE2_TLS_SAN |
Comma-separated additional TLS SANs (e.g. LB VIP or DNS name) | — |
ENABLE_INGRESS_NGINX |
Use rke2-ingress-nginx instead of Traefik |
false |
Download Package on All Nodes¶
Before running the installer, download and extract the Traceable Platform package on each node:
Download from the Traceable downloads portal:
curl -LO https://downloads.traceable.ai/platform/installer/clustermgr/linux-amd64/traceable-clustermgr-<version>-linux-amd64.tgz
Extract the package:
tar -xvf traceable-clustermgr-<version>-linux-amd64.tgz
cd traceable-clustermgr-<version>-linux-amd64
Repeat this on every node (server and agent) before running clustermgr.
First Server Node (Primary Control Plane)¶
Run the following on the first server node:
For HA deployments with a load balancer, include the LB VIP or DNS name as a TLS SAN:
After installation completes, the installer prints a summary including the node token and the exact commands needed to join additional nodes. If needed, retrieve the token directly:
Verify the first node is ready:
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
export PATH=/var/lib/rancher/rke2/bin:$PATH
kubectl get nodes
Airgap Installation¶
Download the airgap package from the Traceable downloads portal (https://downloads-onprem.traceable.ai/app/files/platform/), using the traceable-platform-airgap-{version}.tgz archive.
Extract the airgap package:
Run the following on the first server node:
Follow the same steps as the non-airgap path, adding the --airgap and --skip-image-load flags to the clustermgr install command.
Additional Server Nodes (Additional Control Plane)¶
Verify connectivity to the first server before proceeding:
Run the following on each additional server node, using the token from the first server.
Online install:
RKE2_VERSION=v1.35.3+rke2r3 \
INSTALL_RKE2_TYPE=server \
RKE2_SERVER_URL=https://<first-server-ip-or-LB>:9345 \
RKE2_TOKEN=<node-token-from-first-server> \
clustermgr install --skip-ti
Airgap install:
RKE2_VERSION=v1.35.3+rke2r3 \
ONLINE_INSTALL=false \
INSTALL_RKE2_TYPE=server \
RKE2_SERVER_URL=https://<first-server-ip-or-LB>:9345 \
RKE2_TOKEN=<node-token-from-first-server> \
clustermgr install --skip-ti --airgap
Note: Use the full token value from /var/lib/rancher/rke2/server/node-token (format: K10...::server:<CA_HASH>).
Agent Nodes (Worker Nodes)¶
Verify connectivity to the first server or load balancer before proceeding:
Run the following on each worker node.
Online install:
RKE2_VERSION=v1.35.3+rke2r3 \
INSTALL_RKE2_TYPE=agent \
RKE2_SERVER_URL=https://<first-server-ip-or-LB>:9345 \
RKE2_TOKEN=<node-token-from-first-server> \
clustermgr install --skip-ti
Airgap install:
RKE2_VERSION=v1.35.3+rke2r3 \
ONLINE_INSTALL=false \
INSTALL_RKE2_TYPE=agent \
RKE2_SERVER_URL=https://<first-server-ip-or-LB>:9345 \
RKE2_TOKEN=<node-token-from-first-server> \
clustermgr install --skip-ti --airgap
Validate Cluster¶
On the first server node, verify all nodes have joined and are in Ready state:
export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
export PATH=/var/lib/rancher/rke2/bin:$PATH
kubectl get nodes
Expected output (all nodes should show Ready):
NAME STATUS ROLES AGE VERSION
node-1 Ready control-plane,etcd,master 10m v1.35.3+rke2r3
node-2 Ready control-plane,etcd,master 8m v1.35.3+rke2r3
node-3 Ready control-plane,etcd,master 6m v1.35.3+rke2r3
worker-1 Ready <none> 4m v1.35.3+rke2r3
Important Notes¶
High Availability (HA) Setup¶
- Configure a load balancer pointing to all server nodes on port 9345 (registration) and 6443 (Kubernetes API)
- Pass the LB VIP or DNS name via
RKE2_TLS_SANon the first server node installation - Use the LB address in
RKE2_SERVER_URLwhen joining additional servers and agents
RKE2 Storage¶
RKE2 stores data by default in /var/lib/rancher/rke2. A minimum of 100 GB is recommended for this path.
To change the data directory, add the following to /etc/rancher/rke2/config.yaml before starting RKE2:
Note: This only changes the RKE2 data directory, not other paths such as /var/lib/kubelet or /var/lib/cni.
Troubleshooting¶
Port 9345 Not Accessible¶
- Verify firewall rules allow traffic on port 9345 between all nodes
- Check network connectivity:
nc -zv <server-ip> 9345
Token Mismatch Errors¶
- Use the full node token from
/var/lib/rancher/rke2/server/node-token - Verify no extra whitespace or line breaks were included when copying the token
Nodes Not Joining the Cluster¶
Check the service status and logs on the failing node:
systemctl status rke2-server # or rke2-agent for worker nodes
journalctl -u rke2-server -f # or rke2-agent for worker nodes
Swap Not Disabled¶
The installer will prompt to disable swap interactively. To pre-disable swap before running the installer:
Next Steps¶
After all nodes are in Ready state:
- Proceed with Traceable Platform installation using
clustermgr install-ti - Refer to Multi-Node Installation for platform deployment steps
Support¶
For RKE2 installation assistance, contact: support@harness.io