The Cloud Native Computing Foundation (CNCF) today moved a step closer to making persistent external storage more easily accessible to a Kubernetes cluster by formally adding beta support for the Container Storage Interface (CSI) and persistent local volumes.
The latest version of Kubernetes, version 1.10, also adds an external client-go credential provider (alpha) as well as support for CoreDNS at install time in beta.
Saad Ali, senior software engineer at Google and K8s Storage SIG lead, says the latest additions are especially significant for organizations looking to build stateful applications that need to access data wherever it already resides without having to necessarily migrate every piece of data into the cluster.
Just as importantly, Ali says storage vendors can continue to develop their platforms independently of Kubernetes because CSI provides a standard application programming interface (API) to access storage. Installing a volume plugin is now as easy as deploying a pod within the Kubernetes cluster.
Version 1.10 also makes a durable (non-shared) local storage management capability in beta that makes locally attached (non-network attached) storage available as a persistent volume source. This should allow IT organizations to deploy higher performance and lower cost for distributed file systems and databases on Kubernetes.
Kubernetes now can automatically prevent deletion of Persistent Volume Claims that are in use by a pod and prevent deletion of a Persistent Volume that is bound to a Persistent Volume Claim. Available in beta, these twin capabilities ensure storage API objects are deleted in the correct order, Ali says.
Ali notes the community expects theses storage capabilities to be generally available at the release of Kubernetes 1.11 or shortly thereafter. Once they become generally available, the overall state of hybrid cloud computing will advance because there will be a common platform capable of accessing file, block or object storage in the cloud or on-premises, he says.
Beyond storage, the latest update also allows cloud providers and other platform vendors to create binary plugins for specific identity and access management (IAM) services or on-premises platforms such as Active Directory. Available in alpha, this capability is intended to complement the Cloud Controller Manager feature added version 1.9.
CoreDNS, meanwhile, provides an alternative approach to setting up a domain name system (DNS) within the cluster based on a single executable and single process and supports multiple use cases. CoreDNS is available in beta.
Additional capabilities on Kubernetes 1.10 include support for Device Plugins, a beta extension mechanism that lets device vendors advertise resources such as graphical processor units (GPUs) to the kubelet without changing Kubernetes core code, and API Aggregation, which is a capability now generally available that enables independently built API server binaries to be hosted through the Kubernetes master, with the same authorization, authentication and security configurations exposed on both.
Arguably, the single biggest hurdle now standing in the way of mainstream Kubernetes adoption is availability of skills. To address this issue, the CNCF today also announced it will expand the certification offerings it provides to include a Certified Kubernetes Application Developer exam. The CKAD exam certifies an individual’s ability to design, build, configure and expose cloud native applications for Kubernetes. The CNCF is looking for beta testers for this new program.
The CNCF has also expanded documentation to include user journeys intended to make it easier to learn Kubernetes from scratch or discover a specific feature.
On the one hand, it’s clearly a challenge to keep pace at the rate at which new capabilities are being added to Kubernetes, which may account for why there are so many managed services options. On the other, IT organizations can also take some comfort in the fact that Kubernetes is maturing at unprecedented compared to any other emerging technology platform that has come before it.