Important: This guide is for Private Nodes mode, which is different from Docker experimental nodes. Private Nodes allows you to join real worker nodes (like EC2 instances) to your vCluster control plane using VPN.
- Private Nodes enabled in your vCluster
- vCluster Platform running (required for VPN)
- External node with network access
# Start the platform
vcluster platform start# Create cluster with private nodes and VPN enabled
vcluster create my-cluster \
--set privateNodes.vpn.enabled=true \
--set privateNodes.vpn.nodeToNode.enabled=true# Get the join token
vcluster token createSave this command.
On your external node (e.g., EC2 instance) run the command from the previous step:
curl ...Note: If the join script does not execute directly via
curl | bash, download it first and then run it withsudo:curl -L -o join-script.sh "<join-script-url>" chmod +x join-script.sh sudo ./join-script.sh
For a complete working example of joining a GCP instance as an external node, see: Replacing KinD with vind - Deep Dive
Back on your local machine:
# Check nodes
kubectl get nodes
# You should see your external node listed!
# NAME STATUS ROLES AGE VERSION
# my-cluster Ready master 5m v1.28.0
# ec2-instance Ready <none> 2m v1.28.0