Beispiel: Kubernetes StorageClasses for NetApp AIPod Deployments
Bevor Trident zur dynamischen Provisionierung von Storage-Ressourcen innerhalb Ihres Kubernetes-Clusters verwendet werden kann, müssen Sie einen oder mehrere Kubernetes StorageClasses erstellen. Die folgenden Beispiele stellen verschiedene Typen von StorageClasses dar, die Sie erstellen möchten, wenn Sie Komponenten dieser Lösung auf einem bereitstellen "NetApp AIPod". Weitere Informationen zu StorageClasses, z. B. StorageClasses für andere Plattformen/Umgebungen, finden Sie im "Trident Dokumentation".
-
NetApp empfiehlt das Erstellen einer StorageClass für das FlexGroup-fähige Trident-Backend, das Sie im Abschnitt "Beispiel für Trident Back-Ends für NetApp Implementierungen", Schritt 1 erstellt haben. Die folgenden Beispielbefehle zeigen die Erstellung mehrerer StorageClasses, die den beiden Beispiel-Backend entsprechen, das im Abschnitt "Beispiel für Trident Back-Ends für NetApp Implementierungen", Schritt 1 erstellt wurde - einer, der verwendet und einer, der nicht verwendet "NFS über RDMA"wird.
Damit ein anhaltendes Volume nicht gelöscht wird, wenn das entsprechende PersistenzVolumeClaim (PVC) gelöscht wird, verwendet das folgende Beispiel ein
reclaimPolicy
Der Wert vonRetain
. Weitere Informationen zumreclaimPolicy
Feld, siehe den offiziellen "Kubernetes-Dokumentation".Hinweis: Das folgende Beispiel StorageClasses verwendet eine maximale Übertragungsgröße von 262144. Um diese maximale Übertragungsgröße zu verwenden, müssen Sie die maximale Übertragungsgröße auf Ihrem ONTAP-System entsprechend konfigurieren. Weitere Informationen finden Sie im "ONTAP-Dokumentation" .
Hinweis: Um NFS über RDMA zu verwenden, müssen Sie NFS über RDMA auf Ihrem ONTAP-System konfigurieren. Weitere Informationen finden Sie im "ONTAP-Dokumentation" .
Hinweis: Im folgenden Beispiel wird im Feld StoragePool in der Definitionsdatei der StorageClass kein bestimmtes Backend angegeben.
$ 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 empfiehlt außerdem, eine StorageClass "Beispiel für Trident Back-Ends für AIPod Implementierungen"zu erstellen, die dem FlexVol-fähigen Trident-Backend entspricht, das Sie im Abschnitt , Schritt 2 erstellt haben. Die folgenden Beispielbefehle zeigen die Erstellung einer einzelnen StorageClass für FlexVol Volumes.
Hinweis: Im folgenden Beispiel wird im Feld StoragePool in der Definitionsdatei der StorageClass kein bestimmtes Backend angegeben. Wenn Sie Kubernetes zum Verwalten von Volumes über diese StorageClass verwenden, versucht Trident, jedes verfügbare Back-End zu verwenden, das die verwendet
ontap-nas
Treiber.$ 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