Skip to main content
NetApp Solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

适用于NetApp AIPod部署的Kubernetes StorageClasses示例

贡献者

在使用 Trident 在 Kubernetes 集群中动态配置存储资源之前,必须创建一个或多个 Kubernetes StorageClasses 。下面的示例代表了在上部署此解决方案的组件时可能要创建的不同类型的StorageCluster "NetApp AIPod"。有关StorageClasses以及其他平台/环境的StorageClasses等详细信息,请参见 "Trident 文档"

  1. NetApp建议为在"适用于NetApp AIPod部署的Trident后端示例"第1步的部分中创建的启用了FlexGroup的Trident后端创建存储类。下面的示例命令显示了创建多个StorageClasses的过程,这些StorageClasses对应于在"适用于NetApp AIPod部署的Trident后端示例"第1节步骤1中创建的两个示例后端-一个使用,一个不使用"基于 RDMA 的 NFS"

    为了在删除相应的 PersistentVolumeClaim ( PVC )时不删除永久性卷,以下示例使用了 reClaimPolicyRetain 。有关 re"claimPolicy " 字段的详细信息,请参见相关官员 "Kubernetes 文档"

    注意:以下示例StorageClasses使用的最大传输大小为262144。要使用此最大传输大小、必须相应地在ONTAP系统上配置最大传输大小。有关详细信息、请参见 "ONTAP 文档"

    注意:要使用基于RDMA的NFS、必须在ONTAP系统上配置基于RDMA的NFS。有关详细信息、请参见 "ONTAP 文档"

    注意:在以下示例中、未在StorageClass定义文件的StoragePoool字段中指定特定后端。

    $ 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
  2. 此外,NetApp还建议创建一个与在"适用于AIPod部署的Trident后端示例"第2步的一节中创建的启用了FlexVol的Trident后端对应的存储类。下面的示例命令显示了为 FlexVol 卷创建一个 StorageClass 的过程。

    注意:在以下示例中、未在StorageClass定义文件的StoragePoool字段中指定特定后端。当您使用Kubnetes管理使用此存储类的卷时、啮合动物会尝试使用任何使用的可用后端 ontap-nas 驱动程序。

    $ 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