Modern applications are increasingly being built to take advantage of container technology—primarily by defining microservices that are packaged with their dependencies and configurations in containers. Kubernetes, also known as K8s, is an open-source platform for deploying and managing containerized applications at scale. The Kubernetes container-orchestration system was open-sourced by Google in 2014.
The following figure shows the Kubernetes architecture:
Figure 2. Kubernetes architecture
Kubernetes features for container orchestration at scale include:
In testing, we used Kubernetes pods to deploy storage pool services. The storage pool pod consisted of a Spark container and a SQL Server container.
The Kubernetes CSI specification is a standard for exposing arbitrary block and file storage systems to containerized workloads through an orchestration layer. Kubernetes previously provided a powerful volume plug-in that was part of the core Kubernetes code and shipped with the core Kubernetes binaries. Before the adoption of CSI, however, adding support for new volume plug-ins to Kubernetes when the code was “in-tree” was challenging. Vendors wanting to add support for their storage system to Kubernetes, or even fix a bug in an existing volume plug-in, were forced to align with the Kubernetes release process. In addition, third-party storage code could cause reliability and security issues in core Kubernetes binaries. The code was often difficult—and sometimes impossible—for Kubernetes maintainers to test and maintain.
The adoption of the CSI specification makes the Kubernetes volume layer truly extensible. Using CSI, third-party storage providers can write and deploy plug-ins to expose new storage systems in Kubernetes without having to touch the core Kubernetes code. This capability gives Kubernetes users more storage options and makes the system more secure and reliable. Our solution design highlights these advantages by using the CSI driver for VxFlex to show the benefits of Kubernetes storage automation.
Kubernetes is an open-source container orchestration system. Dell Technologies is a platinum member of the Cloud Native Computing Foundation (CNCF), which supports ongoing Kubernetes development. Companies such as VMware, Red Hat, and Canonical have created their own supported Kubernetes versions that are based on the common open-source version. For the use case that we describe in this white paper, we used open-source Kubernetes because of its capability to run anywhere, to cover the broadest number of designs. For example, key supported platforms include most versions of Linux and clouds like Google GCP, Amazon AWS, and Microsoft Azure. There is no support cost for open-source Kubernetes, which is supported by the Kubernetes community; however, customers needing enterprise support should explore other versions.
VMware Enterprise PKS, which was jointly developed by VMware and Pivotal, is an enterprise implementation of Kubernetes with deep NSX-T integration and a built-in private registry. The commitment of VMware and Pivotal to support upstream Kubernetes means that customers should be able get a new version of PKS within weeks of a new Kubernetes release. For customers that have standardized on VMware vSphere, PKS is a natural extension of the platform.
Red Hat OpenShift is a platform for managing containers across on-premises data centers and clouds such as Azure Red Hat OpenShift. Red Hat OpenShift is part of the CNCF Certified Kubernetes program, ensuring compatibility for your container workloads. Ease of installation, focus on security, and enterprise support make OpenShift a popular choice. The Dell Technologies Solutions Info Hub for the Red Hat OpenShift Container Platform has a library of related technical guides and papers.
Canonical offers a pure upstream Kubernetes platform for managing containers across a wide range of clouds, including all major public clouds, and in private data centers for both bare-metal and virtualized infrastructure. Canonical also offers enterprise support for Kubernetes on Ubuntu for public clouds, VMware, OpenStack, and bare metal.
The VxFlex CSI driver enables customers to automate storage activities while using Kubernetes. Capabilities include:
Volume prefixes enable easy LUN identification. For persistent volumes, the CSI plug-in supports both the ext4 and xfs file systems on worker nodes. The GitHub dell/csi-vxflexos page provides installation details and a download link for the latest VxFlex CSI driver. You can also download the driver product guide from GitHub.