The module lifecycle stage: General Availability
Available with limitations in: CSE Pro (1.67)
Available without limitations in: EE
The csi-netapp module implements Container Storage Interface (CSI) for managing volumes using NetApp storage systems. The module enables creation of StorageClass in Kubernetes through management of Kubernetes Custom Resources NetappStorageClass.
Creating StorageClass for csi.netapp.com CSI driver by users is prohibited.
Currently, the module supports storage systems compatible with NetApp Trident CSI. For support of other NetApp storage systems, please contact Deckhouse technical support.
This page provides instructions for connecting NetApp to Deckhouse Kubernetes Platform (DKP), configuring the connection, and creating StorageClass.
Supported access modes for the module: RWO; RWX — only in DVP.
System Requirements
Before configuring work with the NetApp storage system, make sure that the following requirements are met:
- Availability of deployed and configured NetApp storage system.
- Unique IQNs in
/etc/iscsi/initiatorname.iscsion each Kubernetes node.
Configuring cluster integration with the NetApp storage system
To start working with the NetApp storage system, follow the step-by-step instructions below. Run all commands on a machine with administrative access to the Kubernetes API.
To work with snapshots, the snapshot-controller module must be connected.
-
Execute the command to activate the
csi-netappmodule.d8 s module enable csi-netappAfter activation, the following will be deployed on all cluster nodes:
- CSI driver will be registered.
- Service pods of
csi-netappcomponents will be deployed.
-
Wait for the module to transition to the
Readystate:d8 k get module csi-netapp -w -
Ensure that all pods in the
d8-csi-netappnamespace are in theRunningorCompletedstate and deployed on all cluster nodes:d8 k -n d8-csi-netapp get pod -owide -w -
Create a NetappStorageConnection resource:
d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: NetappStorageConnection metadata: name: netapp spec: controlPlane: address: "172.17.1.55" username: "admin" password: "password" svm: "svm1" EOF -
Verify object creation with the following command (
Phaseshould beCreated):d8 k get netappstorageconnections.storage.deckhouse.io <netappstorageconnection name> -
Create a NetappStorageClass resource:
d8 k apply -f -<<EOF apiVersion: storage.deckhouse.io/v1alpha1 kind: NetappStorageClass metadata: name: netapp spec: pool: "test-cpg" accessProtocol: "iscsi" # fc or iscsi (default iscsi), immutable parameter. fsType: "xfs" # xfs, ext3, ext4 (default ext4), configurable parameter. storageConnectionName: "netapp" # Immutable parameter. reclaimPolicy: Delete # Delete or Retain. cpg: "test-cpg" EOF -
Verify object creation with the following command (
Phaseshould beCreated):d8 k get netappstorageclasses.storage.deckhouse.io <netappstorageclass name>
The NetApp storage system is now ready for use. You can use the created StorageClass to create PersistentVolumeClaims in your applications.