Ejemplos de clases de almacenamiento de Kubernetes para puestas en marcha de AIPod de NetApp
Antes de poder usar Trident para aprovisionar recursos de almacenamiento de forma dinámica dentro del clúster de Kubernetes, debe crear una o varias clases de almacenamiento de Kubernetes. Los ejemplos siguientes representan diferentes tipos de StorageClasses que puede que desee crear si está implementando componentes de esta solución en un "AIPod de NetApp". Para obtener más información sobre StorageClasses y, por ejemplo, StorageClasses para otras plataformas/entornos, consulte la "Documentación de Trident".
-
NetApp recomienda crear una clase de almacenamiento para el backend de Trident habilitado para FlexGroup que haya creado en la sección "Ejemplo de back-ends de Trident para implementaciones de NetApp AIPod", paso 1. Los comandos de ejemplo siguientes muestran la creación de varias clases de almacenamiento que corresponden a los dos backend de ejemplo que se crearon en la sección "Ejemplo de back-ends de Trident para implementaciones de NetApp AIPod", paso 1 - uno que utiliza "NFS sobre RDMA" y otro que no.
Para que no se elimine un volumen persistente cuando se elimine la reclamación de volumen persistente (RVP) correspondiente, en el siguiente ejemplo se utiliza un
reclaimPolicy
valor deRetain
. Para obtener más información acerca dereclaimPolicy
consulte el funcionario "Documentación de Kubernetes".Nota: El siguiente ejemplo StorageClasses utiliza un tamaño de transferencia máximo de 262144. Para utilizar este tamaño máximo de transferencia, debe configurar el tamaño máximo de transferencia en el sistema ONTAP de forma acorde. Consulte la "Documentación de ONTAP" para obtener más información.
Nota: Para utilizar NFS a través de RDMA, debe configurar NFS a través de RDMA en el sistema ONTAP. Consulte la "Documentación de ONTAP" para obtener más información.
Nota: En el siguiente ejemplo, no se especifica un backend específico en el campo storagePool del archivo de definición de 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 también recomienda crear una clase de almacenamiento que corresponda al backend de Trident habilitado para FlexVol que ha creado en la sección "Ejemplo de back-ends de Trident para implementaciones de AIPod", paso 2. Los comandos de ejemplo siguientes muestran la creación de un solo tipo de almacenamiento para volúmenes FlexVol.
Nota: En el siguiente ejemplo, no se especifica un backend particular en el campo storagePool del archivo de definición de StorageClass. Cuando se usa Kubernetes para administrar volúmenes mediante este StorageClass, Trident intenta utilizar cualquier back-end disponible que utilice el
ontap-nas
controlador.$ 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