3 Ways to Offset Kubernetes Complexity
Kubernetes has emerged as the leading open source container orchestration system. According to CNCF’s latest Cloud Native Survey, up to 96% of organizations are using or evaluating Kubernetes. But the same report also highlighted that the container orchestration tool is going “under the hood.” CNCF CTO Chris Aniszczyk shared that Kubernetes is “similar to the ubiquity of Linux, which now resides inside so many other platforms and devices: TVs, phones, fridges and even on the Mars rovers. People tend not to realize all the technology that’s underneath.”
So why is Kubernetes going under the hood? Civo’s Kubernetes 2021 Report found 41% of cloud developers are slightly frustrated or very frustrated by the time it takes to spin up a working cluster, and 85% would be more inclined to use Kubernetes or use it more if adopting the platform was easier to manage. In summary, practitioners want to take advantage of what Kubernetes has to offer without having to deal with its complexity.
This can be done by adding abstraction on top of it. In this article, I explore three critical areas and examples of open source tools that companies can use to make Kubernetes easier.
Management Platforms
This is typically the most important tool to add to any Kubernetes setup. Management platforms address several challenges associated with managing the entire life cycle of Kubernetes clusters and applications. These platforms simplify tasks such as configuring and provisioning clusters, managing and monitoring them, deploying and scaling applications on them and supporting multi-cloud capabilities.
With 21,000 GitHub stars, Rancher is one the most popular open source options for the job. The community loves it because of its user-friendly interface, support for multi-cluster and multi-cloud environments and extensive application catalog.
Another popular option that is especially interesting for companies that have standardized on Cloud Foundry is Korifi. It is based on the same principles as BOSH but for deploying on Kubernetes instead of virtual machines. Korifi offers simple application deployment and management features, making it easier to build, test and scale containerized applications.
Ultimately, most management platforms offer the same capabilities but have different approaches to how they achieve them. Pick the tool that works best for how your organization is currently functioning.
Configuration and Image Managers
Using image managers and templating tools for Kubernetes will help companies simplify the deployment and management of applications in a Kubernetes environment. While these tasks can be done manually, they are repetitive and, quite frankly, annoying. These tools will increase the chance of best practices being baked in, and the automation of these tasks also permits adding them to a deployment pipeline–increasing shipping velocity.
For example, Kustomize allows users to customize raw, template-free YAML files without leaving their original structure. It is designed to work with the Kubernetes native API resource configuration files, making it easy for users to manage application configuration in a more declarative and scalable way.
Another great open source project is Paketo Buildpacks. It provides an easy way to build container images by automatically detecting application language, framework and dependencies with one command–no Dockerfile is needed. The project community curates base images that contain best practices for all the languages it supports, as well as the latest runtime versions and security patches.
Integrated Development Environments
Finally, integrated development environments (IDEs) for Kubernetes are meant to help developers create, test and debug applications on a Kubernetes cluster. Developing applications for Kubernetes means that developers need to interact with different clusters, sometimes hosted on different platforms and infrastructures that are organized and reachable in different ways. Helping engineers to navigate these convoluted contexts will speed up development. Key capabilities to look for when picking a tool are monitoring and troubleshooting, resource management and context-aware development features.
With over 20,000 GitHub stars, Lens stands out for its easy context-switching between multiple Kubernetes clusters and add-on extensibility. Another open source alternative is K9s, on the other side of the spectrum, UI-wise. While it also provides visuals, everything happens in the terminal. So if you’d rather use your keyboard instead of your mouse, K9s should be your choice.
Conclusion
As Kubernetes’ complexity continues to challenge many organizations, the use of abstraction layers will become the norm–and we just covered a few of many areas in this article. Many of these abstraction tools have overlapping features, so make sure to take that into consideration. It may be better to have one tool per area or pick one to do it all.
Taking the time to build a solid Kubernetes setup is worth it! A recent Portworx survey found that 75% of companies using Kubernetes were able to deploy applications more quickly while helping increase revenue or profits by 44%!