cutimage - Fotolia

Kubernetes 1.13 stabilizes storage, but Windows GA delayed

IT pros with Kubernetes in production welcomed stable releases of cluster install and container storage utilities in version 1.13, but they'll have to wait for some key features.

SEATTLE -- Kubernetes 1.13 adds polish to cluster management, especially for stateful apps, but most of this version's slated features were pushed out to the 1.14 release or later.

At the top of the list of 23 features that made it into the latest version are stable releases of kubeadm, a key utility for cluster installations and upgrades, as well as a new set of drivers and features geared toward support for persistent container storage and stateful applications. However, general availability support for Kubernetes for Windows was among the 25 features initially slated for 1.13 that were pushed out to next year's release cycles.

In part, this was because Kubernetes 1.13's 10-week release window, following version 1.12's release in the third quarter of 2018, was the shortest in the project's history. At the same time, Kubernetes maintainers call for more attention to set customer expectations about what Kubernetes on Windows can do.

Kubernetes on Windows has been a work in progress since the version 1.5 release in December 2016, and Kubernetes' origin as a Linux-only project has hampered its development. Some Linux concepts upon which Kubernetes originally relied, such as iptables, have no native equivalent in Windows operating systems. Though Microsoft, Docker and others in the community have completed much of the catch-up work, differences persist.

"Windows file system permissions are specified in a different way than they are in Linux, and there are some things Windows can't support," said Aaron Crickenberger, senior test engineer at Google and chair of the Kubernetes steering committee, here at KubeCon this week. "We want users to have a clear understanding of why their applications might not work on a Windows cluster and whether they're expected to in the future."

Crickenberger and other members of the Kubernetes 1.13 release team said they hope to complete this work for 2019's first quarterly release, version 1.14, but emphasized it's not a guarantee. Vendors such as Docker have made support for Windows on Kubernetes a key selling point this year, but Docker has said it will wait for a stable upstream release before its support for Windows Kubernetes hosts is generally available in Docker Enterprise.

Kubernetes persistent storage strides forward

Kubernetes 1.13 delivers highly anticipated cluster management features, particularly in on-premises and self-managed Kubernetes environments. Two standout additions for many attendees here are the general availability release of Container Storage Interface (CSI) and a feature called topology-aware volume scheduling that together bolster support for container persistent storage.

KubeCon 2018, where Kubernetes 1.13 reached GA
KubeCon attendees welcomed aboard, but some features in Kubernetes 1.13 missed the boat.

Until now, IT pros with Kubernetes in production at several large companies have kept stateful applications out of containers, which complicates application deployments and adds management overhead.

"We're interested in how CSI can support NFS [Network File System] file types such as [Google's] Cloud Filestore," said Erik Rogneby, senior manager of infrastructure development at USA Today Network, a media company based in McLean, Va. "We were looking at specialized tools like Rook and Ceph, but if all we need is NFS access, we can support internal customers with a lot less overhead."

But while CSI is a big step in the right direction, enterprise IT pros also want better backup, replication and archive integration for stateful application data. And discussions within the SIG-Storage group on such features remain preliminary. CSI drivers in Kubernetes 1.13 mostly focus on file storage, and support for block storage devices will stabilize in future releases.

Kubernetes 1.13 updates portend manageability focus

The main benefit of this release is that it improves our ability to provision clusters and extend Kubernetes.
Dale Raganprincipal software design engineer, Concur Technologies Inc.

Another cluster management utility, kubeadm, reached general availability with Kubernetes 1.13, and it now supports long-awaited features, such as high availability (HA) configurations for the Kubernetes control plane during cluster installations.

"We used to write the manifests ourselves when we spun up new API server nodes, because earlier versions didn't support HA," said Dale Ragan, principal software design engineer at SAP's Concur Technologies Inc., an expense management SaaS provider based in Bellevue, Wash. "The main benefit of this release is that it improves our ability to provision clusters and extend Kubernetes."

However, there's much more to come along those lines, mainly in the Cluster API introduced at last year's KubeCon, to create a consistent Kubernetes installation and upgrade process regardless of the underlying infrastructure or cloud service provider that hosts the container orchestration tool. Portions of the API, such as machine controllers, are slated for beta release in 2019, according to the SIG Cluster Lifecycle Roadmap.

"They have some pieces working, but it's still early. And support depends on which provider you're targeting, as well," Ragan said.

The Kubernetes steering committee plans to re-evaluate certain aspects of its release cycles in 2019, such as the potential addition of long-term support releases that extend community support for Kubernetes versions beyond the current nine months. This will also require modification of the Kubernetes upgrade process to support upgrades that skip intermediate versions, rather than require users to cycle through each release in order, said Aishwarya Sundar, software engineer at Google who led the Kubernetes 1.13 release team.

The steering committee will also prepare for a security audit on the Kubernetes platform next year, in part, as a response to a critical security vulnerability in the platform that was disclosed in December 2018.

Dig Deeper on Containers and virtualization