<p>What's the difference between OpenShift and Kubernetes and when should you use each? I understand that OpenShift is running Kubernetes under the hood but am looking to determine when running OpenShift would be better than Kubernetes and when OpenShift may be overkill.</p>

<p>In addition to the additional API entities, as mentioned by @SteveS, Openshift also has advanced security concepts.</p>

<p>This can be very helpful when running in an Enterprise context with specific requirements regarding security.
As much as this can be a strength for real-world applications in production, it can be a source of much frustration in the beginning.
One notable example is the fact that, by default, containers run as <code>root</code> in Kubernetes, but run under an <code>arbitrary user</code> with a high ID (e.g. 1000090000) in Openshift. <em>This means that many containers from  DockerHub do not work as expected</em>. For some popular applications, The  <a href="https://access.redhat.com/containers" rel="noreferrer" title="Red Hat Container Catalog">Red Hat Container Catalog</a> supplies images with this feature/limitation in mind. However, this catalog contains only a subset of popular containers.</p>

<p>To get an idea of the system, I strongly suggest starting out with Kubernetes. <a href="https://github.com/kubernetes/minikube" rel="noreferrer" title="Minikube">Minikube</a> is an excellent way to quickly setup a local, one-node Kubernetes cluster to play with. When you are familiar with the basic concepts, you will better understand the implications of the Openshift features and design decisions.</p>
