Beispiel: Kubernetes StorageClasses for NetApp AIPod Deployments
Bevor Sie Astra Trident für die dynamische Bereitstellung von Storage-Ressourcen innerhalb Ihres Kubernetes-Clusters verwenden können, müssen Sie eine 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 finden Sie im "Astra Trident-Dokumentation".
-
NetApp empfiehlt, eine StorageClass für das FlexGroup-fähige Trident Back-End zu erstellen, das Sie im Abschnitt erstellt haben "Beispiel: Astra Trident Back-Ends für NetApp AIPod Implementierungen", Schritt 1. Die folgenden Beispielbefehle zeigen die Erstellung mehrerer StorageClasses, die dem in diesem Abschnitt erstellten Beispiel-Backend entsprechen "Beispiel: Astra Trident Back-Ends für NetApp AIPod Implementierungen", Schritt 1 - eine, die verwendet "NFS über RDMA" Und eine, die nicht.
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. Siehe "ONTAP-Dokumentation" Entsprechende Details.
Hinweis: Um NFS über RDMA zu verwenden, müssen Sie NFS über RDMA auf Ihrem ONTAP-System konfigurieren. Weitere Informationen finden Sie in der Dokumentation zum https://docs.netapp.com/us-en/ontap/nfs-rdma/[ONTAP.
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 die Erstellung einer StorageClass, die dem FlexVol-fähigen Trident Back-End entspricht, das Sie im Abschnitt erstellt haben "Beispiel: Astra Trident Back-Ends für AIPod Implementierungen", Schritt 2. 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