Beyond Kubernetes
Finally as Kubernetes is a platform we'll go over a few popular building blocks that use Kubernetes.
Kubernetes is a platform for building platforms. It's a better place to start; not the endgame.
— Kelsey Hightower (@kelseyhightower) November 27, 2017
OpenShift is an "enterprise" Kubernetes (Red Hat OpenShift Overview). Claiming that you don't have Kubernetes because you have OpenShift would be equal to claiming "I don't have an engine. I have a car!". For other options for production-ready Kubernetes see Rancher, which you might have seen before in this page https://github.com/rancher/k3d, and Anthos GKE, which might also sound familiar. They are all options when you're making the crucial decision between which Kubernetes distribution you want or would you like to use a managed service.
Serverless
Serverless has gained a lot of popularity and it's easy to see why. Be it Google Cloud Run, Knative, OpenFaaS, OpenWhisk, Fission or Kubeless they're running on top of Kubernetes, or at least capable of doing so. The older the serverless platform the more likely it won't be running on Kubernetes. As such a statement like "Kubernetes is competing with serverless" doesn't make much sense.
As this isn't a serverless course we won't go into depth about it but serverless sounds pretty dope. That's why next we will setup a serverless platform on top of our k3d. For this let's choose Knative as it's the solution Google Cloud Run is based on and seems to be a competent option compared to other open-source options we have available. It also keeps us in the theme of platforms for platforms as it could be used to create your own serverless platform.
Knative has its own community-backed runtime contract. It describes what kind of features an application must and should have to run correctly as a FaaS. An essential requirement is that the app itself must be stateless and configurable with environmental variables. This kind of open-source specification helps a project gain wider adoption. For instance, Google Cloud Run implemented the same contract.