Cloud Native Storage uses several components to integrate with vSphere storage.
The following illustration shows how these components interact.
- Kubernetes Cluster
Cloud Native Storage environment, a generic Kubernetes cluster is deployed on a cluster of virtual machines, or nodes, that run in vSphere. A Kubernetes user directly interacts with the cluster when deploying stateful applications on top of it.
Note: For information on supervisor clusters and TKG clusters that you can run in vSphere with Tanzu, see the vSphere with Tanzu Configuration and Management documentation.
- Container Storage Interface (CSI) for vSphere
To consume underlying infrastructure resources, the cluster requires a CSI driver.
The vSphere CSI is an out-of-tree plug-in that exposes vSphere storage to containerized workloads on container orchestrators, such as Kubernetes. The plug-in enables vSAN and other types of vSphere storage.The vSphere CSI communicates with the CNS control plane on vCenter Server for all storage provisioning operations. The vSphere CSI supports the following functionalities:
- Dynamic provisioning of container volumes.
- The vSphere First Class Disk functionality.
- Kubernetes zones.
- Conventional and raw mounts.
- Single vCenter Server, and multiple data centers and clusters.
- Provisioning from multiple datastores or datastore clusters.
- vSAN File Service
On Kubernetes, the CSI driver is used with the out-of-tree vSphere Cloud Provider Interface (CPI). The CSI driver is shipped as a container image and must be deployed by the cluster administrator. For information, see the Driver Deployment section of the Kubernetes vSphere CSI Driver documentation on GitHub.
For information about the CSI variations used in supervisor clusters and TKG clusters that you can run in vSphere with Tanzu, see the vSphere with Tanzu Configuration and Management documentation.
- Cloud Native Storage Server Component
- The CNS server component, or the CNS control plane, resides in vCenter Server. It is an extension of vCenter Server management that implements the provisioning and life cycle operations for the container volumes.
- When provisioning container volumes, it interacts with vCenter Server to create storage objects that back the volumes. The Storage Policy Based Management functionality guarantees a required level of service to the volumes.
- The CNS also performs query operations that allow you to manage and monitor container volumes and their backing storage objects through vCenter Server.
- First Class Disk (FCD)
Also called Improved Virtual Disk. It is a named virtual disk unassociated with a VM. These disks reside on a vSAN, VMFS, NFS, or vVols datastore and back ReadWriteOnce container volumes.
The FCD technology allows to perform life cycle operations related to persistent volumes outside of the VM or pod life cycle. If the VM is a Kubernetes node that runs multiple container based applications and uses persistent volumes and virtual disks for many applications, CNS facilitates life cycle operations at the container and persistent volume granularity.
- vSAN File Service
- It is a vSAN layer that provides file shares. Currently, it supports NFSv3 and NFSv4.1 file shares. Cloud Native Storage uses vSAN file shares for persistent volumes of the ReadWriteMany type. A single ReadWriteMany volume can be mounted by multiple nodes. The volume can be shared between multiple pods or applications running across Kubernetes nodes or across Kubernetes clusters.
- Storage Policy Based Management
- Storage Policy Based Management is a vCenter Server service that supports provisioning of persistent volumes according to specified storage requirements. After provisioning, the service monitors compliance of the volume with the required policy characteristics.