The latest release of the container orchestration platform Kubernetes is now available. Kubernetes 1.16 is the third release of the project this year, and it includes 31 enhancements.

According to the Kubernetes release team, the main themes of this release are custom resources, overhauled metrics, and volume extension. 

The team has made custom resource definitions (CRDs) generally available. According to the team, CRDs have become the basis for extensions in the Kubernetes ecosystem. 

As part of this move to general availability, the team warns that some of the previously optional guard rails are now required or default behavior. This includes things such as structural schemas, pruning unknown fields, validation, and protecting the *.k8s.io group, which are important for ensuring the longevity of APIs. 

This defaulting and CRD conversion mechanisms will allow developers to build stable APIs that can evolve over time. “We worked with the community to make schemas in CRDs the default, serving as guide rails for developers. An API schema will grow and evolve over time. Support for multiple versions and conversion between them allow developers to cope with these changes,” Red Hat wrote in a blog post about the release. 

Kubernetes 1.16 also adds a metrics registry, which forces metrics to be registers in a more transparent way. According to the Kubernetes release team, metrics previously did not have any stability requirements.

Several enhancements related to volumes and volume modification have also been made. For example, volume resizing support in CSI specs is now moving to beta. 

In addition, Kubernetes 1.16 adds new enhancements for Windows containers, such as enhancing the workload identity options for Windows containers (alpha), improvements to setup and node join experience with kubeadm (alpha), and support for CSI (alpha); and introduces a new alpha feature called Endpoint Slices, which provides a “scalable and extensible alternative to Endpoints resources.”