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

NetApp ONTAP iSCSI 配置

贡献者 kevin-hoke

要通过 iSCSI 将NetApp ONTAP存储系统与 VMware Tanzu Kubernetes 集群集成以实现持久卷,第一步是通过登录每个节点并配置 iSCSI 实用程序或软件包来挂载 iSCSI 卷,从而准备节点。为此,请按照本"链接"

备注 NetApp不建议对 VMware Tanzu Kubernetes 集群的 NAT 部署使用此过程。
备注 TKGI 使用 Bosh VM 作为运行不可变配置映像的 Tanzu Kubernetes 集群的节点,并且 Bosh VM 上 iSCSI 包的任何手动更改在重新启动后都不会保留。因此, NetApp建议使用 NFS 卷作为由 TKGI 部署和运营的 Tanzu Kubernetes 集群的持久存储。

在集群节点准备好 iSCSI 卷后,您必须创建一个能够与存储系统通信的后端。我们在此解决方案中配置了一个基本的后端,但是,如果您正在寻找更多自定义选项,请访问文档"此处"

在ONTAP中创建 SVM

要在ONTAP中创建 SVM,请完成以下步骤:

  1. 登录ONTAP系统管理器,导航到“存储”>“存储虚拟机”,然后单击“添加”。

  2. 输入 SVM 的名称,启用 iSCSI 协议,然后提供数据 LIF 的详细信息。

    iSCSI SVM 数据 LIF

  3. 输入 SVM 管理帐户的详细信息,然后单击“保存”。

    iSCSI SVM 管理

  4. 要将聚合分配给 SVM,请导航到“存储”>“存储虚拟机”,单击新创建的 SVM 旁边的省略号,然后单击“编辑”。选中“限制卷创建到首选本地层”复选框,并将所需的聚合附加到该复选框。

    SVM聚合分配

创建后端和存储类

  1. 对于提供 NFS 服务的NetApp ONTAP系统,请在跳转主机上创建后端配置文件,其中包含 backendName、managementLIF、dataLIF、svm、用户名、密码和其他详细信息。

    {
      "version": 1,
      "storageDriverName": "ontap-san",
      "backendName": "ontap-san+10.61.181.231",
      "managementLIF": "172.21.224.201",
      "dataLIF": "10.61.181.231",
      "svm": "trident_svm_iscsi",
      "username": "admin",
      "password": "password"
    }
  2. 通过运行以下命令创建Trident后端。

    [netapp-user@rhel7 trident-installer]$ ./tridentctl -n trident create backend -f backend-ontap-san.json
    +------------------------+----------------+--------------------------------------+--------+---------+
    |          NAME          | STORAGE DRIVER |                 UUID                 | STATE  | VOLUMES |
    +------------------------+----------------+--------------------------------------+--------+---------+
    | ontap-san+10.61.181.231 | ontap-san      | 6788533c-7fea-4a35-b797-fb9bb3322b91 | online |       0 |
    +------------------------+----------------+--------------------------------------+--------+---------+
  3. 创建后端后,接下来必须创建存储类。以下示例存储类定义突出显示了必需字段和基本字段。参数 `backendType`应该反映新创建的Trident后端的存储驱动程序。还要注意名称字段值,该值必须在后续步骤中引用。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ontap-iscsi
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "ontap-san"
    备注 有一个可选字段称为 `fsType`这是在这个文件中定义的。在 iSCSI 后端,可以将此值设置为特定的 Linux 文件系统类型(XFS、ext4 等),或者可以删除此值以允许 Tanzu Kubernetes 集群决定使用哪种文件系统。
  4. 通过运行 kubectl 命令创建存储类。

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

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: basic
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 1Gi
      storageClassName: ontap-iscsi
  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-7ceac1ba-0189-43c7-8f98-094719f7956c   1Gi        RWO            ontap-iscsi      3s