How to add a node of different subnet?

Cluster information:

Kubernetes version: v1.20.12
Cloud being used: bare-metal
Installation method: manifest
Host OS: ubuntu 20.04
CNI and version:
CRI and version: ?

Problem description


I have a cluster of nodes connecting through an infiniband switch, having a subnet IP: Now I have another computer (let’s say computer A) which only has ethernet but no infiniband, so it cannot connect to the same switch. How can I do to add this computer to my cluster?

Things I have tried:

  1. set the gateway of all cluster nodes to be one of them (let’s say computer B), and then connect computer A and computer B with another router so that they both have subnet IP: Through iptables forwarding and NAT settings on computer B, I can ping each other between computer A and the cluster nodes. But when I join computer A to the cluster, the calico-node continuous to crashloopbackoff and any pod assign to it shows “readiness probe failed”.

Is there other method I can try before buying a switch containing both infiniband and ethernet?

Thanks a lot!