The UX of Kubernetes

by Brandon Strittmatter

on July 23, 2018


Just as companies migrated from on-prem to the cloud, moved from monolithic apps to microservices, adopting Kubernetes is the next big undertaking on many roadmaps. Even at Containership, we’ve begun sunsetting our existing platform in favor of our Containership 3.0, which is based on Kubernetes. As it stands today, diving into Kubernetes is not for the faint of heart; unless you have some serious DevOps chops, you are going to have a hard time wrapping your head around it.

Even if you are running a simple application, the level of complexity will make your head spin. Just to get started you will need to choose a cloud provider, create some virtual machines, provision Kubernetes, create at least one master node, create some worker nodes, choose a container network interface, add a cloud controller manager and container storage interface, choose a cloud native logs and metrics solution, and that’s just to create a cluster; you haven’t even touched your application yet! Now that you have a cluster you will need to break down your application into microservices, containerize it, create a workload by writing a YAML file and selecting one of the 9 different workload types, deploy it, and ... you’re still not running!


You then have to deploy a series of services and network policies just to make it visible to the public. This level of complexity is necessary to enable all the power and functions of Kubernetes, wouldn’t it be nice if you could still utilize those without needing to be an expert? Hint: you can. Containership already makes the first half of getting started on Kubernetes, incredibly easy. To create a cluster you simply need to select a cloud provider, enter your credentials, and we’ll walk you through the rest. You can create a highly available Kubernetes cluster in under 5 minutes, with multiple master & follower node pools.

Node Pools

Node pools are another way we are simplifying the way to manage your Kubernetes cluster. They were an idea introduced through Google’s Kubernetes Engine and provide an intuitive way to manage your cluster’s nodes. It allows you to modify and set up definitions for how you want each pool to function. Meaning one pool can have larger or smaller instance sizes than the others, exist a different availability zone, and it can have different tags or labels. This enables you to target specific clusters with their workloads.


Metrics & Logging

Additionally your CKE clusters will have built in metrics & logging. Currently we support Prometheus and Kubernetes plugins, with plans to release additional options in the near future. Meaning your newly launched application will automatically have metrics and logging available in the UI. You can easily scale up and down to meet your resource demands on your cluster. 



The next big challenge we are tackling is the ability to easily deploy your application. We already allow you to attach a private registry and import your YAML, but now we are simplifying the ability to create a workload. The new flow will guide a user through creating a workload, providing best practices behind the scenes. Power users are able to break from this creation wizard by entering raw YAML, and toggling back and forth between the views. Through this curated process users can quickly launch a working application without getting caught up in all the unnecessary complexities that make up Kubernetes.

What’s Next

Now that we have simplified the cluster creation process we will be releasing additional UX improving features including: single-click deployments, simplified Kubernetes upgrades, and better filtering/sorting of your applications. We are continuously improving our product and are always interested in feedback, so please check it out and let me know how your experience goes.