Exemplo de Kubernetes StorageClasses para implantações do NetApp AIPod
Antes de usar o Trident para provisionar recursos de storage dinamicamente no cluster do Kubernetes, é necessário criar um ou mais StorageClasses do Kubernetes. Os exemplos a seguir representam diferentes tipos de StorageClasses que você pode querer criar se estiver implantando componentes desta solução em um "NetApp AIPod". Para obter mais informações sobre o StorageClasses e, por exemplo, StorageClasses para outras plataformas/ambientes, consulte o "Documentação do Trident".
-
A NetApp recomenda a criação de um StorageClass para o back-end Trident habilitado para FlexGroup criado na "Exemplo de backends Trident para implantações NetApp AIPod"seção , etapa 1. Os comandos de exemplo a seguir mostram a criação de vários StorageClasses que correspondem ao back-end de dois exemplos criado na "Exemplo de backends Trident para implantações NetApp AIPod"seção , etapa 1 - um que utiliza "NFS sobre RDMA" e outro que não o faz.
Para que um volume persistente não seja excluído quando o PersistentVolumeClaim (PVC) correspondente for excluído, o exemplo a seguir usa um
reclaimPolicy
valorRetain
de . Para obter mais informações sobre oreclaimPolicy
campo, consulte o oficial "Documentação do Kubernetes".Observação: O exemplo a seguir StorageClasses usa um tamanho máximo de transferência de 262144 GB. Para utilizar este tamanho máximo de transferência, tem de configurar o tamanho máximo de transferência no seu sistema ONTAP em conformidade. Consulte "Documentação do ONTAP"para obter mais informações.
Observação: Para usar o NFS em RDMA, você deve configurar o NFS em RDMA em seu sistema ONTAP. Consulte "Documentação do ONTAP"para obter mais informações.
Observação: No exemplo a seguir, um back-end específico não é especificado no campo storagePool no arquivo de definição 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
-
O NetApp também recomenda a criação de um StorageClass que corresponda ao back-end Trident habilitado para FlexVol criado na "Exemplo de backends Trident para implantações AIPod"seção , etapa 2. Os comandos de exemplo a seguir mostram a criação de um único StorageClass para volumes FlexVol.
Observação: No exemplo a seguir, um back-end específico não é especificado no campo storagePool no arquivo de definição StorageClass. Quando você usa o Kubernetes para administrar volumes usando esse StorageClass, o Trident tenta usar qualquer back-end disponível que use
ontap-nas
o 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