<p>I want to run my docker containers on a remote server, because my machine isn't powerful enough.</p>
<p>I have <a href="https://github.com/JonasProgrammer/docker-machine-driver-hetzner" rel="nofollow noreferrer">setup a Hetzner server with <code>docker-machine</code></a> and have successfully switched to that docker server. Docker commands are now executed on my Hetzner machine.</p>
<p>I'd like to expand this setup to be able to run Kubernetes on this remote docker server.</p>
<p>Is that possible? Do I need to install Kubernetes on the VM running on Hetzner or can I run a local Kubernetes instance that simply uses the remote server?</p>
<p>I'd like my setup to be as close as possible to a local installation.</p>

<p>Kubernetes requires a control-plane (at least one server) and agent 'machines' (at least one). For a full installation it also requires an etcd database. For a minimum production configuration you'll need at least 9 separate servers.</p>
<p>Having said that, you can just run <a href="https://k3d.io/" rel="nofollow noreferrer">Rancher's K3D</a> on the remote machine, which like <a href="https://minikube.sigs.k8s.io/docs/" rel="nofollow noreferrer">minikube</a> and <a href="https://kind.sigs.k8s.io/" rel="nofollow noreferrer">Kind</a> (and others), is a kubernetes installation that runs in docker on a single machine. Personally, I think K3D is the best option, but opinions vary. Be aware though that the resources required to run kubernetes are quite high, and the server you rent should have sufficient power. For a simple learning type workload I'd recommend at least 2 cores and 8gb of ram.</p>
<p>There are many ways to configure this and access it from your local machine. You'll need to open ports on the remote control-plane to allow access from your local, but it sounds like you've already done that for docker so you should be able to do it for kubernetes. You'll also need to use <code>kubectl</code>, but it's best to run that in a docker container, rather than installing it locally.</p>
