The unique benefits of having your Kubernetes environment managed

Kubernetes, a little bit of background

Kubernetes is an open source platform for managing containerized workloads and services, enabling both configuration and automation. It has a large, fast-growing ecosystem. The name Kubernetes comes from Greek and means helmsman or pilot. Google made the Kubernetes project open source in 2014. This way, Kubernetes combines more than 15 years of experience with Google's knowledge of huge production workloads with the best practices of the open source community, we at Hosted Power are of course a big fan of.

K8 as an abbreviation is the result of counting the eight letters between the "K" and the "s".

The evolution up to the K8S era

Traditional deployment

In the beginning, organizations ran applications on physical servers. There was no way to define resource boundaries for applications or a physical server, and this potentially caused resource allocation problems. For example, if multiple applications are running on a physical server, one application may take up the most resources, causing the other applications to underperform. A solution to this would be to run each application on a different physical server. Since this solution was not scalable, it became an expensive solution for organizations. If something becomes too expensive, it will innovate. Enter virtualization.

containers stacked on a cloud

Virtualization

So virtualization was introduced as a solution. It allows you to run multiple virtual machines (VMs) on the CPU of a single physical server. Virtualization allows the applications to be isolated between VMs and provides a level of security as the information from one application is not freely accessible to another application.

Virtualization makes better use of a physical server's resources and enables better scalability, as an application can be easily added or updated. In this way, hardware costs are reduced. Virtualization allows you to present a set of physical resources as a cluster of virtual machines.

Well-known "hypervisors" for managing virtual systems include VmWare, Openstack and KVM.

Each VM is a complete, self-contained machine that runs all components, including its own operating system, on top of the virtualized hardware. As you sense in the last sentence, there is still room for optimizing resources used here. This has become possible with the introduction of containers.

Containers

Containers are similar to VMs, but they have moderated features that allow sharing the operating system (OS, e.g. Windows or Linux) between the applications. Therefore, containers are considered lightweight. Like a VM, a container has its own file system, CPU share, memory, process space, and more. Because they are decoupled from the underlying infrastructure, they are portable between Clouds and OSes.

Visual representation of Virtualisation - Containerisation


How does a Kubernetes cluster work?

We could spend hours on this, but let us briefly explain. A Kubernetes cluster essentially consists of:

  • A control element that makes global decisions about the cluster, detects and responds to cluster events. This control plane is composed of several main components.
  • A set of nodes, worker instances that contain the services needed to run pods, maintain running pods, and provide the Kubernetes runtime environment.

"Using Kubernetes is a great experience, it's much less easy to use in production. And building a managed Kubernetes platform is even worse"

Deploying the Kubernetes cluster is just the beginning, to complete the already product you also need to ensure that:

  • The installation process is automatable and repeatable
  • The upgrade/rollback process is safe
  • There is a recovery procedure, which must be documented and tested
  • Performance is predictable and consistent, especially when using persistent volumes
  • The cluster is serviceable, with sufficient rungs, metrics, and logs to determine and debug errors and issues
  • The service is secure and available
  • Our response to this operational hypothesis

If you thought setting up your new Kubernetes cluster would give you all this operational freedom, it seems you were wrong. Kubernetes itself is a management tool that should not be underestimated, where you can quickly loose a lot of time and effort into deployment and maintenance.

So, like many powerful technologies, the apparent simplicity and versatility of Kubernetes on the Dev side is matched by high complexity on the Ops side. Reason enough for Hosted Power to create a managed Kubernetes solution. Combined with our TurboStack® technology, we can develop a tailor-made total solution for your container application, completely managed by Hosted Power, but since we consider transparency important, it is certainly possible to gain insight yourself.

Our managed Kubernetes is completely based on open source, vendor lock-free and 100% compatible with any other Kubernetes solution. Our goal is to provide our partners with a fully managed out-of-the-box Kubernetes cluster, ready to use, without the hassle of installation or operation. That's what we do!

Want to learn more about these topics?