Slight nitpick. OpenShift, since its latest major version (3?) is Kubernetes. It's mostly a repackaging/distribution of k8s. OpenShift can run on top of AWS/Azure/GCP, but also, most importantly, OpenStack.
Another nitpick, openshift is not a repackaging but a fork of Kubernetes pure and simple, if you look at the origin you'll see those merge patch they do on every Kubernetes releases
It doesn't. Their cloud tech, OpenShift, runs on top of the others. Kubernetes can sit on top of that. It makes private clouds portable (kind of).