In this blog, we’ll cover a very brief refresher on Kubernetes for those who need it, why it’s important, and then jump straight into the trends for 2020.
What is Kubernetes – and why is it so important?
Kubernetes, also known as K8s (for K and eight characters), is a container orchestration tool used for managing clusters of containers. Kubernetes allows you to scale your containers across multiple nodes in your data centers or cloud environments, and through the kubectl command, easily manage all the resources within your cluster.
From a top-level perspective, Kubernetes can be separated into two layers, or ‘planes.’
The first, the control plane, is the layer which orchestrates, which means it manages your container cluster’s storage, permissions and volume according to user-defined rules set out in the YAML file or Helmfile, which determine the optimal parameters of operation.
The second plane – the ‘worker’ plane – is composed of worker nodes. These are the containers which carry out the compute and run your application.
So, in essence, Kubernetes is very simple.
But why is it so important?
To understand the importance of Kubernetes, you first need to understand containers, so why not read our thoughts on those here.
Once you grasp the concept, the importance of a system for managing containers becomes self-evident. But, briefly, containers are important because they’re:
- Lighter, consuming less CPU resource
- Agnostic, able to operate in a diverse range of environments
- Replicable, they can be multiplied considerably more cheaply than VMs
- Allows you to package your application and its dependencies into one blob
It’s also important to note however, that some see Kubernetes as more than an orchestration tool. Rather, it is a tool which makes orchestration obsolete, in that it moves your cluster toward the pre-set desired state without need for your intervention.
In short, Kubernetes is important because it’s an indispensable way of managing a powerful and increasingly prevalent technology.
So how is Kubernetes changing in 2020? Three important trends
1. Kubernetes Federation V2 (KubeFed) may arrive
Kubernetes Federation has been in the works for some time. The first iteration, called Kubernetes Federation, however, never achieved GA (general acceptance).
But KubeFed looks set to make a convincing debut in 2020, likely reaching beta and quite probably becoming widely adopted.
As the name suggests, KubeFed adds another layer of centralised control to Kubernetes, which is crucial to managing multi-cloud, hybrid-cloud and multi-region clusters at scale.
If we imagine a KubeFed-less scenario, we may have two sets of clusters, one on a private cloud network and another on AWS. In each case, configurations must be specific to the environment and managed manually, making scaling across multiple environments unpredictable.
With KubeFed, we can deploy API objects across the group of clusters, meaning you can use a single YAML file to manage these grouped clusters across environments. This allows these clusters to share things such as:
- Storage classes
- Application definitions
- Persistent volume types
Essentially making scaling within a diverse set of environments feasible.
2. Edge computing
In 2020, there will be a considerable push to reduce the already-smaller-than average (due to the attributes of containers) ‘shoe-size’ of Kubernetes: its baseline level of compute resource consumption.
And, partly, this will be fueled by its applications in edge computing and IoT (internet of things).
Edge is the practise of carrying out compute tasks as close to the source of the request as possible. The benefit of this is lower latency (where data is pre-sorted or handled wholly by an edge device) and less costly high-traffic connections between on-site devices and data centres.
One example would be using a [email protected] in CloudFront to process a user’s request during A/B testing and sending that user to the relevant site.
Or, more materially, we might look at a pressure sensor in a factory which detects excessive pressure and relieves the system without needing to wait to receive instructions from a central processor, saving cost, physical damage and even lives.
These edge devices are typically low on CPU resources, making them good candidates for running light, containerized applications managed by Kubernetes.
3. Kubernetes-first and Kubernetes-native applications
Kubernetes is emerging as the focal point for building new technologies, and, as things move forward, it will become the norm.
Whereas before, companies were constantly casting about for a way of managing their containerised applications, and finding Kubernetes the best tool for the job, they’re now being led by Kubernetes.
This means that in 2020, the number of applications developed specifically for Kubernetes, or which will increase in value by being run on it, will increase dramatically.
Bonus – an example of all three trends in one!
Let’s say we’re a company that manufactures something, and we have that pressure sensor problem again.
What we’d like to do is manage all our sensors using one application on a number of edge devices, so we develop a small-footprint, Kubernetes-native application to pre-sort the data before it goes back to our central processing application.
That’s two out of three trends, but the issue is, each factory does not go to the same processor, as, due to availability, we’re using AWS for some factories’ processing and a private network for others.
Without Kubefed, we’d have to manage the configurations for each group; one on AWS; one private.
With Kubefed, the whole, hybrid-cloud solution for managing every factories’ pressure sensor is controlled centrally, obfuscating the need for different configurations.
How we can help
If you’re reading this, you’re likely either using Kubernetes or considering using it. We’re saying, let us handle that for you.
We’ve carried out complex Kubernetes projects for many clients (check out our work for Sydney Coliseum) and, as a cloud-native MSP, we’re always on the forefront of innovation.
To find out more, just get in touch.