Esempio di Kubernetes StorageClasses per implementazioni di NetApp AIPod
Prima di utilizzare Trident per eseguire il provisioning dinamico delle risorse di storage all'interno del cluster Kubernetes, è necessario creare una o più Kubernetes StorageClasses. Gli esempi che seguono rappresentano diversi tipi di StorageClasses che si potrebbe voler creare se si distribuiscono componenti di questa soluzione su un "FlexPod NetApp". Per ulteriori informazioni su StorageClasses e, ad esempio, StorageClasses per altre piattaforme/ambienti, vedere "Documentazione di Trident".
-
NetApp consiglia di creare un StorageClass per il backend Trident abilitato per FlexGroup creato nella sezione "Esempi di backend Trident per implementazioni di NetApp APod", passaggio 1. I comandi di esempio che seguono mostrano la creazione di più StorageClasses che corrispondono ai due backend di esempio che è stato creato nella sezione "Esempi di backend Trident per implementazioni di NetApp APod", passo 1 - uno che utilizza "NFS su RDMA" e uno che non lo fa.
Per evitare che un volume persistente venga cancellato quando il PVC (PersistentVolumeClaim) corrispondente viene cancellato, nel seguente esempio viene utilizzato un
reclaimPolicy
valore diRetain
. Per ulteriori informazioni sureclaimPolicy
vedi il sito ufficiale "Documentazione Kubernetes".Nota: Il seguente esempio StorageClasses utilizza una dimensione di trasferimento massima di 262144 GB. Per utilizzare questa dimensione di trasferimento massima, è necessario configurare di conseguenza la dimensione di trasferimento massima sul sistema ONTAP. Per ulteriori informazioni, fare riferimento alla "Documentazione ONTAP" .
Nota: Per utilizzare NFS su RDMA, è necessario configurare NFS su RDMA sul sistema ONTAP. Per ulteriori informazioni, fare riferimento alla "Documentazione ONTAP" .
Nota: Nell'esempio seguente, non viene specificato un backend specifico nel campo storagePool nel file di definizione StorageClass.
$ cat << EOF > ./storage-class-aipod-flexgroups-retain.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: aipod-flexgroups-retain provisioner: csi.trident.netapp.io mountOptions: ["vers=4.1", "nconnect=16", "rsize=262144", "wsize=262144"] parameters: backendType: "ontap-nas-flexgroup" storagePools: "aipod-flexgroups-iface1:.*" reclaimPolicy: Retain EOF $ kubectl create -f ./storage-class-aipod-flexgroups-retain.yaml storageclass.storage.k8s.io/aipod-flexgroups-retain created $ cat << EOF > ./storage-class-aipod-flexgroups-retain-rdma.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: aipod-flexgroups-retain-rdma provisioner: csi.trident.netapp.io mountOptions: ["vers=4.1", "proto=rdma", "max_connect=16", "rsize=262144", "wsize=262144"] parameters: backendType: "ontap-nas-flexgroup" storagePools: "aipod-flexgroups-iface1:.*" reclaimPolicy: Retain EOF $ kubectl create -f ./storage-class-aipod-flexgroups-retain-rdma.yaml storageclass.storage.k8s.io/aipod-flexgroups-retain-rdma created $ kubectl get storageclass NAME PROVISIONER AGE aipod-flexgroups-retain csi.trident.netapp.io 0m aipod-flexgroups-retain-rdma csi.trident.netapp.io 0m
-
NetApp consiglia inoltre di creare un StorageClass che corrisponda al backend Trident abilitato per FlexVol creato nella sezione "Esempi di backend Trident per implementazioni di APod", passaggio 2. I comandi di esempio che seguono mostrano la creazione di una singola classe di storage per volumi FlexVol.
Nota: Nell'esempio seguente, non viene specificato un backend particolare nel campo storagePool nel file di definizione StorageClass. Quando utilizzi Kubernetes per amministrare volumi utilizzando questa StorageClass, Trident tenta di utilizzare qualsiasi backend disponibile che utilizza
ontap-nas
driver.$ cat << EOF > ./storage-class-aipod-flexvols-retain.yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: aipod-flexvols-retain provisioner: netapp.io/trident parameters: backendType: "ontap-nas" reclaimPolicy: Retain EOF $ kubectl create -f ./storage-class-aipod-flexvols-retain.yaml storageclass.storage.k8s.io/aipod-flexvols-retain created $ kubectl get storageclass NAME PROVISIONER AGE aipod-flexgroups-retain csi.trident.netapp.io 0m aipod-flexgroups-retain-rdma csi.trident.netapp.io 0m aipod-flexvols-retain csi.trident.netapp.io 0m