<p>I have a docker image that serves a simple static web page. 
I have a working Kubernetes cluster of 4 nodes (physical servers not in the cloud anywhere).</p>

<p>I want to run that docker image on 2 of the 4 Kubernetes nodes and have it be accessible to the world outside the cluster and load balanced and have it move it to another node if one dies.</p>

<p>Do I need to make a pod then a replication controller then a kube proxy something?
Or do I need to just make a replication controller and expose it somehow? 
Do I need to make service?</p>

<p>I don't need help with how to make any of those things, that seems well documented, but what I can't tell what I need to make.</p>

<p>What you need is to <strong>expose</strong> your <strong>service</strong> (that consists of <strong>pods</strong> which are run/scaled/restarted by your <strong>replication controller</strong>). Using <strong>deployment</strong> instead of replication controller has additional benefits (mainly for updating the app).</p>

<p>If you are on bare metal then you probably wish to expose your service via <code>type: NodePort</code> - so every node in your cluster will open a static port that routes traffic to pods.</p>

<p>You can then either point your load balancer to that nodes on that port, or make a DNS entry with all Kubernetes nodes.</p>

<p>Docs: <a href="http://kubernetes.io/docs/user-guide/quick-start/" rel="nofollow noreferrer">http://kubernetes.io/docs/user-guide/quick-start/</a></p>
