Lessons learned with self hosted Kubernetes: OpenShift 4 & Octant from VMware
In late September, I attended the Triangle Kubernetes and OpenShift Meetup. The two topics for the evening were: "Lessons learned building a self hosted Kubernetes: OpenShift 4" and "Understanding Your Kubernetes Cluster with Octant".
The first presentation was given by Clayton Coleman, an OpenShift architect at Red Hat. Clayton gave us all a bit of a behind-the-scenes look at how Kubernetes (and OpenShift) have evolved from the early days right after Google open-sourced the project. It sounds like it's been a wild ride!
Clayton described how Red Hat's role has been one of providing enterprise perspective and trying to harden and stabilize the technology. One example he gave was around trying to ensure that the API control plane can shut down gracefully during upgrade or maintenance operations. There are a lot of projects and companies out there claiming to get you up and running quickly, but how are the day 2 operations? That's a question that Clayton and his team are trying to ask a lot right now, especially as they look at the OpenShift roadmap for version 4 and beyond.
Not having been super in-touch with Kubernetes developments over the past couple of years, it was also really neat to hear about the development of custom resource definitions (CRD) and how those have allowed the community to transform different aspects of Kubernetes and OpenShift to be more pluggable. One statistic Clayton provided around this was turning 600+ configuration flags for the core platform into about 40 parameters and several CRDs. This seems to be allowing better isolation of features and components so that operators can be concerned about fewer parameters that may not be relevant to their installations.
Overall, Clayton delivered a fascinating story looking at how Kubernetes and OpenShift have grown and continue to evolve.
The next presentation was delivered by Wayne Witzel of VMware on one of their open source projects, Octant. At a high-level, Octant is a tool for visualizing and interacting with your Kubernetes cluster. Octant's primary audience is developers of applications that get deployed to Kubernetes, and from Wayne's description, the biggest objective they have with the project is to provide another way of lowering the barrier to entry to Kubernetes for application developers.
Some of the cool aspects about Octant that stood out to me were:
- It is a single binary that you can run on your machine
- It leverages your
kubectl
credentials to talk to Kubernetes, so no additional configuration is needed - 1-click port forwards for pods
- Resource visualizer for several different Kubernetes API object types
Wayne demoed the visualizer from a few different angles in trying to track down problems or just explain infrastructure. I think it's a cool approach to understanding how different components relate, and even for someone who is experienced with Kubernetes, I can see how having a nice user interface for the control plane could surface components or configuration that you don't always think about.
Octant still has a few rough edges (seemingly from the demo), but the VMware team is actively developing the tool. They are also really trying to make it accessible to the broader community by providing documentation and a plugin architecture. I think this is definitely a project to watch!