Onboarding Nodes
Nodes can be added to the cluster at any time. You can add nodes from the same network or from an external network, provided the necessary network configurations are in place.
Network Prerequisites (for External Nodes Joining over the Public Internet)
The cluster will allow external nodes to join only if config.allowExternalNodes=true
.
Port | Protocol | Component | Description |
---|---|---|---|
10250 | TCP | kubelet | Required for communication with the control plane |
30000–32767 | TCP/UDP | NodePort Services | Port range for services exposed using NodePort type |
Note: A static IP is mandatory.
Note: If the cluster uses a VPN, the node must first join the cluster’s VPN. This is not managed by AIOS.
Network Prerequisites (for Internal Network Nodes)
If the node resides in the same internal network as the master node and is governed by a common firewall configuration, expose:
- 30000–32767 (TCP/UDP)
Prerequisites
-
kubeadm
must be installed on the node, and its version should match the target cluster. Refer toclusterMetadata.additionalInfo.kubeadmVersion
. -
The network must be configured correctly as per the guidelines above.
Obtain the Cluster Data
Fetch the target cluster's metadata from the cluster registry.
Endpoint: /clusters/:id
Method: GET
Description: Fetches the cluster document using its unique id
.
Example:
curl -X GET http://<cluster-registry-url>/clusters/cluster-west-vision-001
Onboarding the Node
-
Extract the
joinCommand
from theclusterMetadata.additionalInfo.joinCommand
field of the cluster document. -
Use the onboarding script provided in the
installer/
directory:
cd installer/
python join_node.py \
--node-id=<node-id> \
--cluster-id=<cluster-id> \
--api-url=<parser-api-url> \
--kubeadm-join-cmd="<join command>"
If the cluster's and network's add_node
pre-check policies pass, the node will be successfully onboarded.
Note: The Cluster Controller will automatically label the node with the correct
nodeID
once it successfully joins the cluster.