The team behind container orchestration platform Kubernetes has pushed out version 1.17 of its project, putting the focus on stabilising features and moving the migration of in-tree plugins to the Container Storage Interface (CSI) along.
Infrastructure for the latter was introduced in v1.14 to facilitate the addition of new storage systems amongst other things. Prior to the interface, the code of the volume plugins was part of the Kubernetes core which made it hard to extend and maintain.
With the CSI migration beta, Kubernetes distributors are promised a way of replacing in-tree storage plugins with CSI drivers with comparatively little effort. For now, migration options are available for GCE Persistent Disk (beta), AWS Elastic Block Store (beta), Azure Ffile/Ddisk (alpha), and Openstack/Cinder (alpha).
Another storage related feature that made it to beta is Kubernetes Volume Snapshot. The interface is meant to offer “a standard way to trigger snapshot operations in the Kubernetes API”. It is now enabled by default, but only works if Kubernetes Volume Snapshot CRDs, a Volume snapshot controller, and CSI Driver supporting Kubernetes volume snapshot betas are deployed on a cluster. Admins that made use of the API before, should check the latest changes, since some fields that were optional (or non-existent) before are now required, which could lead to some systems breaking.
Apart from that, the RunAsUsername feature for Windows containers is now beta, same goes for EndpointSlices. Users that want to sort resources by name or kind can use a new –sort-by flag in kubectl’s api-resource command. Adding a –prefix flag into kubectl logs fits each line with source information like pod or container name.
The Kubernetes team also bumped a whole lot of beta features to GA status, marking them mature enough for production use. Amongst them are cloud provider labels, which had been around since v1.2, ScheduleDaemonSetPods, TaintNodesByCondition, and VolumeSubpathEnvExpansion. Other, now stable, features include WatchBookmark, which allows clients to watch bookmarks to reduce load on kube-apiserver, and NodeLease, which turns changes in a Lease object into a health signal for the node lifecycle controller.
A complete list of alterations in the fourth and final release of 2019 can be found in the project’s changelog.