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

NetApp ONTAP NFS 配置

提供者

要通过NFS与NetApp ONTAP 存储系统实现Trident集成、您必须创建一个后端、以便与存储系统进行通信。我们在此解决方案 中配置了一个基本后端、但如果您要查找更多自定义选项、请访问相关文档 "此处"

在ONTAP 中创建SVM

  1. 登录到ONTAP 系统管理器、导航到存储> Storage VM、然后单击添加。

  2. 输入SVM的名称、启用NFS协议、选中允许NFS客户端访问复选框、然后在导出策略规则中添加工作节点所在的子网、以便允许将卷作为PV挂载到工作负载集群中。

    使用NFS创建SVM
    注 如果您要在NSX-T中使用NAT部署用户集群或工作负载集群、则需要将出口子网(对于TKGS0)或浮动IP子网(对于TKGI)添加到导出策略规则中。
  3. 提供数据LIF的详细信息以及SVM管理帐户的详细信息、然后单击保存。

    SVM数据LIF和SVM管理
  4. 将聚合分配给SVM。导航到存储>存储VM、单击新创建的SVM旁边的省略号、然后单击编辑。选中将卷创建限制为首选本地层复选框、并将所需聚合附加到其中。

    SVM聚合分配
  5. 如果要安装Trident的用户或工作负载集群采用NAT方式进行部署、则由于SNAT、存储挂载请求可能来自非标准端口。默认情况下、ONTAP 仅允许从根端口发出卷挂载请求。因此、请登录到ONTAP 命令行界面并修改设置、以允许来自非标准端口的挂载请求。

    ontap-01> vserver nfs modify -vserver tanzu_svm -mount-rootonly disabled

创建后端和StorageClasses

  1. 对于提供NFS服务的NetApp ONTAP 系统、请使用backendName、managementLIF、dataLIF、SVM、username在jumphost上创建一个后端配置文件。 密码和其他详细信息。

    {
        "version": 1,
        "storageDriverName": "ontap-nas",
        "backendName": "ontap-nas+10.61.181.221",
        "managementLIF": "172.21.224.201",
        "dataLIF": "10.61.181.221",
        "svm": "trident_svm",
        "username": "admin",
        "password": "password"
    }
    注 最佳做法是,将自定义 backendName 值定义为 storageDriverName 和为 NFS 提供服务的 dataLIF 的组合,以便于识别。
  2. 运行以下命令创建Trident后端。

    [netapp-user@rhel7]$ ./tridentctl -n trident create backend -f backend-ontap-nas.json
    +-------------------------+----------------+--------------------------------------+--------+---------+
    |          NAME           | STORAGE DRIVER |                 UUID                 | STATE  | VOLUMES |
    +-------------------------+----------------+--------------------------------------+--------+---------+
    | ontap-nas+10.61.181.221 | ontap-nas      | be7a619d-c81d-445c-b80c-5c87a73c5b1e | online |       0 |
    +-------------------------+----------------+--------------------------------------+--------+---------+
  3. 创建后端后,您接下来必须创建一个存储类。以下存储类定义示例突出显示了必填字段和基本字段。参数`backendType`应反映新创建的Trident后端的存储驱动程序。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ontap-nfs
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "ontap-nas"
  4. 运行kubectl命令创建存储类。

    [netapp-user@rhel7 trident-installer]$ kubectl create -f storage-class-nfs.yaml
    storageclass.storage.k8s.io/ontap-nfs created
  5. 创建存储类后,您必须创建第一个永久性卷请求( PVC )。下面提供了一个PVC定义示例。确保`storageClassName`字段与刚刚创建的存储类的名称匹配。根据要配置的工作负载、可以根据需要进一步自定义PVC定义。

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: basic
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: ontap-nfs
  6. 发出kubectl命令创建PVC。根据所创建的后备卷的大小,创建可能需要一些时间,因此您可以在该过程完成后进行观察。

    [netapp-user@rhel7 trident-installer]$ kubectl create -f pvc-basic.yaml
    persistentvolumeclaim/basic created
    
    [netapp-user@rhel7 trident-installer]$ kubectl get pvc
    NAME    STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    basic   Bound    pvc-b4370d37-0fa4-4c17-bd86-94f96c94b42d   1Gi        RWO            ontap-nfs      7s