Kubernetes goes in for nip and tuck, comes out with 25 'enhancements': We take a look at v1.15
New release is easier to customize, better performance, complex as hell
A new release of Kubernetes, version 1.15, today went live with 25 enhancements including support for go modules in Kubernetes Core, a new Events API in alpha and High Availability (HA) improvements.
There is a handy Enhancement Tracking spreadsheet here where you can observe that two features, support for Go modules in Kubernetes Core (in place of the deprecated godep) and a kubectl (the command-line tool for management Kubernetes) enhancement, have moved from beta to stable.
A further 13 enhancements are now in beta and 10 in Alpha.
The Kubernetes team defines enhancements as features of significance, an imprecise term. Does it merit a blog post? Will it have alpha/beta/stable stages? Will it require engineer retraining?
The real news here is about Custom Resource Definitions (CRDs), which allow you to extend Kubernetes with your own APIs. CRDs are not new, but work has been done to make them both more powerful and safer to use. There are also new features in the Container Storage Interface.
Kubeadm – a tool for managing cluster lifecycle functions including creation, upgrades and downgrades – has new features to support HA and certificate management, helping to avoid problems with expired certificates.
A new event API now features in the Alpha release. This has been a long time coming; it was first mooted in 2017. "The current implementation of Events in Kubernetes is problematic," says the proposal. "Currently Events are extremely spammy... also there are well-known performance problems caused by Events."
Kubernetes has become 'boring' and that's good, Google tells devsREAD MORE
There are many more detailed changes which can be read here, including fixes for specific platforms such as AWS, Azure, Google Cloud Platform (GCP), OpenStack and VMware.
In related news, Amazon has announced support for Kubernetes version 1.13 and deprecation of version 1.10 in its Elastic Kubernetes Service (EKS).
Kubernetes is a low-level project, once described by Google's Kelsey Hightower as "a platform for building platforms". This is a clue that deploying and managing Kubernetes is not intended to trivial, and why users need additional tools such as Helm (a Kubernetes package manger) or solutions like the Cloud Foundry Container Runtime to deploy and manage Kubernetes clusters.
Despite its complexity, Kubernetes is now the de facto standard for container orchestration. The project is just five years old, but has proven success in enabling scalable services. The Cloud Native Computing Foundation (CNCF), which manages Kubernetes, reports that it now has 400 members, up 130 per cent year-on-year.
The downside is that it is easy to get it wrong. You can end up with problems like those faced by data science company Civis Analytics after migrating to Kubernetes. "We began to see stability issues with our Kubernetes cluster... the biggest mistake we made with this release was assuming that Kubernetes does everything for free. Kubernetes says that it can support clusters with up to 5,000 nodes and 100,000 pods running. However, there are many levers that need to be pulled in order to achieve that scale."
The implication is that Kubernetes is great if you need it, but not a train to hop on for applications that do not require its features. ®