You've probably heard all the "cool kids" talking about Kubernetes these days. You might also have heard about PKS or CFCR and seen some references to NSX-T. So what's it all about? And where does it fit in?
The popularity of K8s cannot be explained by the ease setup or maintainance it provides though. Actually, it turns out that setting up and maintaining a Kubernetes cluster is rather painful. Pivotal Container Services (PKS) uses the power of BOSH to take away this pain. PKS builds on the open source Cloud foundry container runtime and adds a REST API to easily request and stand-up new K8s clusters. But it doesn't stop there. PKS also provides a deep NSX-T integration.
The NSX-T integration gives you the ability to automatically deploy loadbalancers for you containerized workloads. This saves a lot of grief when setting up new applications, especially on vSphere environments. NSX-T also provides firewalling al the way up to the container. So even containers running on the same host can be protected from each other.
As you may know, Pivotal also provides an application platform called Pivotal Appliation Services (PAS formerly PCF) and recently even announced a project called Knative which aims to provide a serverless/FaaS like solution. So how does this all fit together?
I'll skip the diagrams and the talk about abstraction levels and try to explain this in terms of "What do you worry about?"
Let's start at the lower end of the stack, the IaaS layer. This will be vSphere for a lot of our customers. The thing you worry about at this level are virtual machines. As a vSphere admin it's you job to provide the highest uptime for VMs. This usually includes the OS running on it.
On top of that OS you can run containers. Usually of the Docker flavor. What you worry about on this level is building Docker images and running them. What to include in the Docker images alone is usually good for lengthy discussions. If you've finally build a docker image you need to keep it up to date. Then you also need to run them somewhere. But running is not enough, they need a connection to the network, loadbalancing etc. They need a lot of care to keep them running in general.
Kubernetes takes some of this caring away from you. You still care about building and maintaining the container image. But the runtime part is taken care of. So if you're invested in Docker or if you have 3th party apps that are delivered as Docker images then Kubernetes is an excellent fit for you.
Kubernetes itself requires a lot of caring as well so if you're going for Kubernetes please consider PKS. It just makes your life a lot easier.
If you want to stop worrying about building and managing container images altogether and you just want to worry about your application code then you might want to move up one layer. PAS or Cloud Foundry Application Runtime lets you push your application code directly into the platform. The platform will create the container for you, runs the application and keeps it running even when it crashes. It will even to auto scaling for you. The only thing you worry about is writing application code.
We can take this one level higher. If you just want to worry about a few functions and streams of events. In that case you should look into serverless computing. Although I like the term Function as a service (FaaS) much better because it describes what it actually is. Pivotal will be offering a FaaS based on Knative. IT is a bit like Amazon Lambda if you're familiar with that. But this is all very early stages, more on this later.