Kubernetes Persistent Storage
  • 27 Jun 2024
  • 1 Minute to read
  • Dark
    Light

Kubernetes Persistent Storage

  • Dark
    Light

Article summary

This article gives a brief overview of related Kubernetes terminology, and the Volumez configuration needed for Kubernetes integration.  

The CSI (Container Storage Interface) is a Kubernetes driver managing persistent storage on top of containerized environments.

Volumez is a CSI provisioner for Kubernetes:

https://github.com/VolumezTech/helm-csi/tree/main

A Persistent Volume (PV) is an abstraction and representation of physical or networked storage in a cluster. A PVC (Persistent Volume Claim) is a request for such storage, used to specify the needed storage requirements. Storage Classes define the properties and behavior of PVs which are provisioned from them.

Volumez CSI provides functionalities for managing and creating storage/PVs in Kubernetes through Storage Class.

Sidecars are used to extend the functionality of a primary container as an add-on or side container to the primary one.

Volumez CSI requires the following sidecars:

  • VLZ-CSI-Driver Container

  • CSI external-attacher Container The CSI external-attacher is a sidecar container that watches the Kubernetes API server for VolumeAttachment objects and triggers Controller [Publish|Unpublish] Volume operations against a CSI endpoint.

  • CSI external-provisioner Container The CSI external-provisioner is a sidecar container that watches the Kubernetes API server for PersistentVolumeClaim objects.

  • CSI external-resizer Container The CSI external-resizer is a sidecar container that watches the Kubernetes API server for PersistentVolumeClaim object edits and triggers ControllerExpandVolume operations against a CSI endpoint if a user requested more storage on a PersistentVolumeClaim object.

  • CSI external-snapshotter Container The CSI external-snapshotter sidecar only watches the Kubernetes API server for VolumeSnapshotContent CRD objects. The CSI external-snapshotter sidecar is also responsible for calling the CSI RPCs CreateSnapshot, DeleteSnapshot, and ListSnapshots.

  • CSI external-health-monitor Container The CSI external-health-monitor-controller is a sidecar container that calls the CSI controller RPC ListVolumes or ControllerGetVolume to check the health condition of the CSI volumes and report events on PersistentVolumeClaim if the condition of a volume is abnormal.

  • CSI node-driver-registrar Container The CSI node-driver-registrar is a sidecar container that fetches driver information from a CSI endpoint and registers it with the kubelet on that node using the kubelet plugin registration mechanism.

    The diagram below illustrates the interactivity between the Volumez CSI Driver Container, Kubernetes pods, and the listed, required sidecars.

In the following description, creation of a PVC means a Persistent Volume Claim is created, based on configured Volumez CSI definitions.

Creation of a PV refers to a YAML file created with the Volumez-defined requirements described in the storage class.


Was this article helpful?