How can developers get going quickly with managed Kubernetes?
Software development has been changing in recent years, continuous deployment and rapid delivery of new versions of applications are now increasingly the norm over slow and massive version changes. This change has led to new ways of working, with applications more commonly deployed using containers, on virtual hosts.
In March 2016, the Cloud Native Computing Foundation (CNCF) completed its first survey on container adoption and found only 23 percent of respondents making use of containers in a production environment. Fast forward to 2021, new research from Civo that surveyed over 1,000 cloud developers found 50 percent of respondents reported that their organization utilizes containers, with 73 percent of those using containers in a production environment.
The problem with containers is finding a way to successfully optimise and manage all your workloads. This is where Kubernetes comes in. However, Kubernetes is also not the easiest thing to wrap your head around hence why many are turning to managed Kubernetes to keep everything in check.
The various choices for developers wanting to run/manage containers
Firstly, we need to understand containers. For many, understanding containers starts with Docker. Docker allows developers to create, share, and run containerized applications. It was originally built for Linux and is now regarded as the most popular containerization engine.
Docker is in charge of creating containers and, as you’re probably guessing, Kubernetes is in charge of managing them. Kubernetes is the most popular choice for container orchestration. It’s open-source and maintained by the CNCF.
Kubernetes allows developers to deploy, scale, schedule and manage their containerized applications. It does this by grouping containers into pods, running on nodes, that are seen as clusters.
Essentially, Docker builds containers, Kubernetes runs them, and the two work quite well together -- if you’ve got the right versions.
But, it’s never that easy. To run a full containerized suite in a given environment, you need to learn these systems and -- because of the steep learning curve associated with Kubernetes -- many are choosing to explore managed Kubernetes.
Managed Kubernetes as a new way forward
One of the main reasons for developers exploring managed Kubernetes relates to the current climate. There’s a skills shortage and everyone’s aware of it. This skills shortage effects the availability of developers with the skills and knowledge to manage Kubernetes and containers. And even if you did manage to find a developer with the skills you need to run your environment -- they’re probably going to be very expensive.
Secondly, managed Kubernetes is much faster and easier to get started. As mentioned previously, Kubernetes is extremely complicated for developers new to the system and many organizations just don’t have the time to create and run their own production environments. Civo’s research found 57 percent of respondents cited Kubernetes’ complexity for staff as the main reason restricting them from using Kubernetes.
The final key benefit to highlight is that managed Kubernetes is much more reliable and secure. With managed Kubernetes, you have a whole team on demand to make sure your environment is running and protected. Not only this, but you also have access to said team’s breadth of knowledge and expertise to ensure you’re getting the most out of your environment. The resulting freedom from managed Kubernetes brings on its own benefit as internal teams have the luxury of time to focus on their own priorities.
K3s, its benefits, and its growing popularity
Kubernetes -- or K8s, the "traditional" version of Kubernetes -- sounds great so far, right? However, we’ve not touched on one of its main downfalls -- Kubernetes is resource-heavy.
To run K8s, it requires a lot of computing power, something which not all organizations have access to. K8s' resource-heavy setup is the reason many are calling for a push to K3s -- a lightweight Kubernetes distribution that is extremely similar to K8s at less than half the size.
K3s is packaged as a signal binary of less than 40MB that implements the Kubernetes API. To achieve this reduction, Rancher Labs -- creator of K3s before handing it over to the CNCF -- removed cloud provider-specific implementations and storage classes bundled in the main K8s, that can all be replaced by add-ons as and when required.
Since its release in 2019, its popularity has only grown. In its first year of release, K3s was downloaded more than a million times, according to Rancher Labs. Slowly we’ve started to see K3s used in production environments across the enterprise, something which is only expected to continue.
The lightweight K3s model means it’s possible to run a cluster without the requirement for the computing power that K8s requires, making it possible to run workloads flexibly, as K3s does not require dedicated nodes for processes. This also means it can install much quicker too.
With all these benefits, and more providers offering managed K3s, it’s exciting to see where it will go next.
Next steps for container orchestration
Containers are only set to become more popular as we move into the cloud-native era but the complexity surrounding them is unlikely to go anywhere soon. The speed at which the technology is developing also adds to this complexity, making it difficult for developers to keep up-to-date on their own. For this reason, many more developers will turn to managed Kubernetes.
On top of this, K3s is changing the way we use Kubernetes. It’s light-weight benefits means we will only see more firms utilizing it in production environments. And, with managed K3s becoming more common, businesses have a new way to run containers at pace, at a fraction of the price compared to K8s.
It’s clear times are changing, but it’ll be exciting to see how the innovative K3s fits into the picture, pushing innovation in Kubernetes and driving change across the enterprise.
Image Credit: Piotr Swat / Shutterstock
Kai Hoffman is developer advocate, Civo