Cisco HyperFlex Container Storage Interface (CSI) for Kubernetes

About Cisco Hyperflex Kubernetes CSI

Cisco HyperFlex Container Storage Interface (CSI) is an out-of-tree container-based Kubernetes storage integration; which is deployed and consumed through standard Kubernetes primitives such as Persistent Volume Claims and Storage Classes. Cisco HyperFlex CSI supports the following features:

  • Dynamic creation and deletion of volumes

  • Dynamic volume attach and detach

Cisco HyperFlex CSI Components

The Cisco HyperFlex CSI integration is deployed as containers on top of the target Kubernetes cluster. The following diagram shows the different components of the Cisco HyperFlex CSI deployment and how they interact with each other.

Deployment includes three pods:

csi-attacher-hxcsi

  • Type: StatefulSet

  • Number of Instances: One per Kubernetes Cluster

  • Purpose: Required by CSI, but not currently in used in the Cisco deployment.

csi-provisioner-hxcsi

  • Type: StatefulSet

  • Number of Instances: One per Kubernetes Cluster

  • Purpose: Watches Kubernetes Persistent Volume Claim objects and triggers CreateVolume and DeleteVolume operations as part of CSI spec.

csi-nodeplugin-hxcsi

  • Type: DaemonSet

  • Number of Instances: One per Kubernetes Worker Node

  • Purpose: Discovery and formatting of provisioned HyperFlex iSCSI LUNs on Kubernetes worker nodes. Implements NodeStage/NodeUnstage and NodePublish/NodeUnpublish Volume APIs as part of Kubernetes CSI spec.