Deckhouse Kubernetes Platform (DKP) implements support for NetApp data storage systems for volume management in Kubernetes using CSI driver. This integration provides reliable, scalable, and high-performance storage suitable for critical workloads. For working with NetApp storage systems, the csi-netapp module is used, which allows creating StorageClass in Kubernetes through creating a NetappStorageClass resource.
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 DKP, configuring the connection, and creating StorageClass.
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 system 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.