I posted this in StackOverflow but got redirected here, so I'm asking it again. I'm currently working on a use case where multiple machines behind NAT routers need to be able to act as nodes in a Kubernetes cluster. This presents some serious networking difficulties, because instead of being on the same local network and being able to access other pods by IP trivially, nodes don't even have publicly accessible IPs. I've been trying to figure out a solution using tunneling, but I'm not sure exactly how that would work. All pods need to be able to communicate, so would I have to set up a tunnel between each pod and also from each node to the api server? All machines that act as nodes in our cluster will be connected via WebRTC connections, so theoretically data could be passed by WebRTC as well. Someone else mentioned using a VPN, so if anyone knows more specifics of how to do that, that'd be awesome too. I'm hoping this has been done by others before in one way or another.