zhu difeng - Fotolia
There has been a lot of attention paid to containers over the past few years, as organisations turned to so-called “cloud-native” technologies for building new applications and services.
While Docker was the initial focus of much of the early interest in container technologies, the spotlight is now on Kubernetes as a key enabler for operating workloads across clouds and delivering a certain measure of portability.
Kubernetes is not a container runtime like Docker, but is instead an orchestration system for managing and operating clusters of containers that together make up a distributed application.
What is Kubernetes?
The tool is based on technology that Google developed to drive its own cloud services, but is now an open source tool, under the stewardship of the Cloud Native Computing Foundation (CNCF).
Recently, Kubernetes has started to gain acceptance as the container orchestration tool of choice, pulling ahead of others such as Docker’s own Swarm or Apache Mesos.
This has seen it adopted and offered as a service by most of the major public clouds, in the form of Google Kubernetes Engine (GKE), Azure Container Services (AKS), and also Amazon Web Services (AWS) in the shape of Amazon Elastic Container Service for Kubernetes (Amazon EKS).
Meanwhile, Kubernetes is also becoming integrated with a growing number of on-premise offerings, such as Red Hat’s OpenShift application platform and the Pivotal Container Service (PKS). Even Docker has added support for Kubernetes to its Enterprise Edition platform (Docker EE).
The presence of Kubernetes in so many places means its APIs now effectively provide a compatibility layer for application portability between the various cloud platforms. If an organisation chooses to build its containerised applications using Kubernetes, then moving an application from one cloud to another should be made that much simpler, for example.
Making multi-cloud happen
One firm that sees Kubernetes this way is Ubuntu Linux developer Canonical, which has incorporated support for it as part of a broader multi-cloud push.
Speaking at the launch of its latest Ubuntu release, Canonical founder and chief executive Mark Shuttleworth said Kubernetes effectively forms the transport layer in a multi-cloud environment, enabling organisations to move workloads between different environments.
Ubuntu is claimed by Canonical to power the majority of workloads operating on public clouds, and the latest release (18.04) is significant for being a Long Term Support (LTS) version, which will be backed by updates and technical support for five years.
This includes support for Canonical’s own distribution of Kubernetes, which adds tools to aid deployment and operation, but is otherwise a clean “upstream” distribution of the code, the firm said.
“We think of Kubernetes as a commodity, so we price Kubernetes as being built into our support package for Ubuntu in the enterprise, it’s not an extra,” said Shuttleworth.
This aligns with the business model the public clouds have adopted, he claims, where Kubernetes is essentially offered as a free service along with the compute instances a customer is charged for that host their container workloads.
The expanding Kubernetes ecosystem
Other firms have similar aims with regards to Kubernetes and cross-cloud portability. Earlier this year, VMware and Pivotal, both of which are subsidiaries of Dell Technologies, announced the Pivotal Container Service (PKS).
This is based on Kubernetes, but adds additional capabilities for the deployment and operation of Kubernetes clusters, support for high availability, auto-scaling, and health-checks.
Most of these capabilities are provided by an open-source tool, Bosh, which was designed for life-cycle management of large-scale distributed services. However, a key feature of Bosh is its Cloud Provider Interface (CPI), which it uses to connect with the underlying infrastructure.
Depending on the CPI, PKS can run on-site atop VMware’s vSphere, or on a public cloud such as the Google Cloud Platform.
Red Hat’s OpenShift also offers a measure of portability, through it being available as an on-site version (OpenShift Container Platform), a hosted version (OpenShift Online) and as a service delivered from AWS and Google (OpenShift Dedicated).
Read more about container technology
- StorageOS releases tool that allows management of persistent storage for containers that can operate on-premise, in public cloud and hybrid cloud to provide deployment, QoS and protection.
- Youth charity YMCA is in the midst of a push to reduce its reliance on paper-based education aids, with the help of Droplet Computing’s application container technology.
OpenShift has existed as a self-contained platform-as-a-service (PaaS) since 2011, but moved from using a proprietary framework called Gears to using containers and Kubernetes when version 3 was released in 2015.
However, the key factor is it effectively takes away the need to deal directly with Kubernetes from the user, with the intention of letting them focus on building their application instead.
This appears to be leading to a new divide in the technology industry, between those who feel it best to grant developers direct access to a clean, “upstream” build of Kubernetes, such as Canonical, and those who regard Kubernetes as just another component to be integrated into their own platform – hiding away much of the complexity in the process.
“We stand in stark contrast to some of our enterprise [competitors] who are, we think, trying to offer overly complex old-school economic models for PaaS infrastructure, when what developers really want is vanilla Kubernetes,” said Shuttleworth. “So our focus is on being the simplest and most cost-effective delivery of the new commodity infrastructure and on attracting third-party solutions.”
Consulting on Kubernetes
Whether this really matters is open to debate. There is the risk of supplier lock-in with the OpenShift approach, but at the same time, a turnkey platform can save a great deal of effort in providing the supporting infrastructure to operate an application or service, such as load balancing and monitoring.
Clive Longbottom, service director at analyst Quocirca, agreed: “As long as the basic kernel of Kubernetes is left inviolate, then I don’t really mind if others extend it with additional libraries and so on – after all, that approach hasn’t exactly killed off Linux, has it?”
It should be noted that Kubernetes alone is no silver bullet for building multi-cloud operations. For that, organisations require cloud management tools with a strong cross-platform capability, a market that is still relatively immature.
Nevertheless, the emergence of Kubernetes as a standard for operating containers across different clouds gives the IT department greater confidence that if they build an application with Kubernetes, it should be able to run almost anywhere.