Modern applications are increasingly being designed to take advantage of container technology—primarily by development of microservices that are packaged with their dependencies and configurations in a container format. Kubernetes, also known as K8s, is a platform for deploying and managing containerized applications at scale. Google released the open-source Kubernetes container-orchestration system in 2014.
The following figure shows the Kubernetes architecture:
Figure 2. Kubernetes architecture
Kubernetes container-orchestration features for supporting enterprise scale and operations include:
The Kubernetes CSI specification defines a method for exposing block and file storage systems to containerized workloads through an orchestration layer. Before the development of CSI, Kubernetes used a volume plug-in that was part of the core Kubernetes code and shipped with the compiled Kubernetes binaries. Adding support for a new volume type using the plug-ins approach was challenging when the code was “in-tree.” Vendors who wanted to add support for their storage system to Kubernetes, or even to fix a problem 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 vSphere CSI driver to show the benefits of Kubernetes storage automation with VxRail.
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, thus covering 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. The Kubernetes community provides free support for open-source Kubernetes; however, customers requiring enterprise support should explore other versions.
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 Info Hub for Dell Technologies solutions for Red Hat OpenShift Container Platform has a library of related technical guides and papers.
The vSphere CSI driver enables customers to automate storage activities while using Kubernetes. Capabilities include:
For persistent volumes, the CSI plug-in supports both the ext4 and xfs file systems on worker nodes. For installation details and a download link for the latest vSphere CSI driver, see https://github.com/kubernetes/cloud-provider-vsphere/.