This guide will help you install and configure the RunOS Node Agent on your nodes.
Before installing the Node Agent, ensure:
- You have a RunOS account and access token
- Your node has outbound internet connectivity
- You have root/sudo access on the node
- Ports 9191 and 9192 can reach the RunOS control plane
The node agent is distributed as raw Linux binaries via GitHub Releases and is
installed as runos at /usr/local/bin/runos. Download the release asset for an
exact version and install it:
# Download for Linux x86_64 (replace <version> with an exact release tag, e.g. v0.24.0)
sudo curl -L \
https://github.com/runos-official/nodeagent/releases/download/<version>/nodeagent-linux-amd64 \
-o /usr/local/bin/runos
# Make it executable
sudo chmod +x /usr/local/bin/runosBefore installation, verify your system meets all requirements:
sudo runos preflightThis command checks:
- CPU cores (minimum 2)
- RAM (minimum 4 GB)
- Disk space (minimum 16 GB available)
- Operating system (Ubuntu 24.04)
- No pending system reboots
- No active package manager processes
If any checks fail, address the issues before proceeding.
Registration connects your node to the RunOS control plane and obtains security certificates:
sudo runos register --token <YOUR_TOKEN> --aid <ACCOUNT_ID> --control-plane <0|1>Parameters:
--token: Your RunOS registration token (obtain from RunOS console)--aid: Your RunOS account ID--control-plane: Set to1if this is a control plane node,0for worker nodes
Example:
sudo runos register --token abc123xyz789 --aid acct_1234 --control-plane 0Install Kubernetes and networking components:
sudo runos installThis command will:
- Install WireGuard VPN software
- Configure two VPN interfaces for network connectivity:
- wg0 (172.24.0.0/16) - Internal Kubernetes node-to-node communication
- wg1 (172.24.200.0/21) - User VPN access to reach internal services from outside
- Install Kubernetes components (kubeadm, kubelet, kubectl)
- Set up the node to join your cluster
About VPN Interfaces:
The Node Agent manages two WireGuard VPN tunnels:
-
wg0 - Kubernetes Internal Network
- Used for pod-to-pod and node-to-node communication within the cluster
- All cluster nodes communicate through this network
- Automatically synchronized when nodes join or leave
-
wg1 - External User Access
- Allows authorized users to access cluster services remotely
- Enables secure connections from outside the cluster network
- Both interfaces can communicate with each other
Start the agent daemon:
sudo runos agentThe agent will:
- Connect to the RunOS control plane
- Begin accepting management commands
- Report node health and status
- Maintain VPN connectivity (both wg0 and wg1 interfaces)
- Automatically sync VPN peers as nodes join or leave the cluster
For production use, run the agent as a systemd service:
Create /etc/systemd/system/runos.service:
[Unit]
Description=RunOS Node Agent
After=network.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/runos agent
Restart=always
RestartSec=10
User=root
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable runos.service
sudo systemctl start runos.service
sudo systemctl status runos.serviceCheck that the agent is running correctly:
# Check agent status
runos status
# View version information
runos version
# Check systemd service (if using systemd)
sudo systemctl status runos.service
# Verify VPN interfaces are up
ip addr show wg0
ip addr show wg1
# Check VPN peer connectivity
sudo wg showExpected VPN Configuration:
# wg0 should show internal Kubernetes network
wg0: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
inet 172.24.x.x netmask 255.255.0.0
# wg1 should show user access network
wg1: flags=209<UP,POINTOPOINT,RUNNING,NOARP> mtu 1420
inet 172.24.200.x netmask 255.255.248.0- Review Configuration options
- Learn about available Commands
- Set up Log Monitoring
- Understand Connectivity requirements