The big announcement during the 2nd general session at VMworld was around Pivotal Container Services, or PKS, which is an on-prem, managed kubernetes offering. PKS is targeted at customers who want a private kubernetes environment, operated at scale, and enterprise grade (meaning manageable, upgradeable, etc.).
I wanted to provide some context around several things that I think a lot of people aren’t aware of. I’m going to try to define all the acronyms as well, as this gets confusing fast. Give it a couple of reads if you have to!
What is Pivotal? Pivotal is a company that produces a Platform-as-a-Service (PaaS) stack called Pivotal Cloud Foundry, or PCF. Cloud Foundry is open source but Pivotal puts it all together in an easy to use package. Cloud Foundry is a PaaS which essentially lets developers submit code and it automatically deploys containerized apps. PCF has a container scheduler/orchestrator called diego (predates kubernetes).
Kubernetes (also referred to as k8s) is a container orchestration system. Like Cloud Foundry, it is open source but developed by Google. It allows you to define and operate container groups for redundancy and also rapidly scale them as well. If you have used kubernetes on Google Cloud Platform (GCP), you will know it as Google Container Engine, with the GKE acronym. K is not a typo, it is a reference to kubernetes under the covers. You’ll recognize this same naming convention in PKS. Also it happens that GCE is already taken, as that is Google Compute Engine, their standard cloud platform. GKE is really easy to use.
Kubernetes is a great container orchestration and scheduling system, but when it comes to rolling your own inside your own data center, it is hard to operationalize. You may run into some or all of the following issues:
- No out of the box fault tolerance for the cluster components themselves
- No out of the box mechanism to scale workers, masters, etcd, etc.
- Health check only does routine health checks of workers running workloads
- Upgrades are hard
This is where PKS comes in.
Back to PCF, it uses software called BOSH to deploy and maintain the environment. Essentially BOSH is loosely based on Google’s Borg, and is Configuration Management on steroids. BOSH will not only take a defined environment and build it, it will maintain it, scale it, upgrade it, etc. BOSH is, once again, an open source tool for release engineering, deployment, lifecycle management, and monitoring of distributed systems. And what is kubernetes? Why, it is a big distributed system!
PKS leverages kubo, or KUbernetes powered by BOsh, for system management. Again we aren’t talking about doing any container level stuff here, that’s what kubernetes rocks at. We are talking about configuring and maintaining the kubernetes system itself in a sane way. Kubo is also open source, but similar to how PCF gives you an easy to roll Cloud Foundry instance without having to do your own BOSH configurations, PKS gives you a ready to run kubo environment without having to do it all yourself. Sure nothing is stopping you from doing it yourself, but you probably have better things to do with your heartbeats. Another great thing is that kubo was a joint development between Pivotal and Google, so you know it is rock solid.
Now that you know what PCF and PKS are, you might be wondering, what’s the difference? Briefly:
- PCF – this is a PaaS which means that while developers can utilize containers, they can also directly submit source code to it. There is no need to compile anything. It is essentially a “here is my source code, give me a URL to my app” system. These systems are fantastic for developers, especially with stateless apps.
- PKS – this is a container orchestration system which means that developers can’t submit source directly. They must submit structured containers which have compiled applications on them. These systems are great for stateful apps (require data persistence) and clustered apps.
With PKS you get the following advantages over trying to roll your own kubernetes:
- Day 1 – deploy kubernetes via BOSH
- Day 2 – self-healing VMs and monitoring via BOSH, elastic scaling, rolling upgrades, high availability and multi-AZ support
You can also leverage your VMware tools to do things like NSX-T for container networking, and vRealize Operations and Log Insight for monitoring.
Seriously, PKS essentially gives you the power and simplicity that GKE gives you, but inside your own data center (or anywhere you care to point BOSH at! Multicloud? No problem!).