CSI Driver and Kubernetes Integration – Application Note

This article summarizes the QSAN CSI driver for Kubernetes, covering when and how to use it with XCubeSAN as external storage to provide persistent volumes, dynamic provisioning, and improved scalability and reliability.

Download: CSI & Kubernetes PDF

Click here to download the CSI Driver and Kubernetes Integration application note.

Key Sections:

  • Overview: CSI driver purpose; when to use it vs. built-in plugins; basic usage flow (create StorageClass, PVC, deploy app).
  • Challenges: Local disk running out of space; limited local performance; add external storage without disrupting microservices.
  • Benefits: Scalability, data persistence, high availability, storage efficiency (thin provisioning, compression, deduplication), security features.
  • K8s Optimization & Compatibility: Performance monitoring; capacity planning; scalability; compatibility with K8s 1.21–1.25; get images from Docker Hub and CSI from GitHub; use Thick provisioning pool; Volume Timestamp disabled by default (enabling may slightly impact performance).
  • Implementation:
    • Topology: External iSCSI network between worker nodes and XCubeSAN.
    • Install CSI Driver: Download package → edit qsan-auth → run ./install.sh → set StorageClass in sc.yaml → create pool & host group → set management and iSCSI data IPs → apply sc.yaml → configure pvc.yaml → apply pvc.yaml → set pod.yaml with PVC → apply and verify.
    • Multipath Policy: Edit multipath.conf, run multipath, verify device status.
    • Fibre Channel Usage: FC setup mirrors iSCSI flow; supports higher IOPS/low latency; integrates with KubeVirt.
    • Supported/Unsupported: Supported scenarios 1–4 (HG = Host Group). Unsupported: ports on different host groups.
  • Constraints: Thin pool and MPIO not supported with CSI; use a Thick pool; connect iSCSI to one controller; max 32 volumes per Host Group.
  • Apply To: XEVO firmware 2.3.0+.
  • References: XS5300/XS3300 series pages; Cloud Native page; XEVO Software Manual; tutorial videos (Thin pool wizard; K8s CSI Driver); Docker Hub; QSAN CSI (GitHub).

Critical Notes:

  • CAUTION: Use Thick provisioning with CSI; do not enable MPIO for CSI; connect iSCSI to a single controller.
  • INFORMATION: Compatible Kubernetes versions: 1.21–1.25; Volume Timestamp is off by default.

JetStor Support

For assistance with CSI and Kubernetes on JetStor deployments:
๐Ÿ“ง [email protected]
๐ŸŽซ Submit Support Ticket