你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Red Hat OpenShift 上为 OpenShift 虚拟化配置 Azure NetApp 文件(预览版)

Azure NetApp 文件是一种企业级高性能计量式文件存储服务。 它支持云中要求最高的企业文件工作负载,包括数据库和高性能计算应用程序,无需更改代码。

Azure NetApp 文件支持使用 Trident CSI 驱动程序在 Azure Red Hat OpenShift 上进行 OpenShift 虚拟化。 经认证的 Trident 操作员可以消耗和管理存储资源,并且可以从 OperatorHub 部署到 Azure Red Hat OpenShift。 这允许 Azure Red Hat OpenShift 群集自动创建 Azure NetApp 文件卷作为虚拟机(VM)磁盘的永久性卷。 Azure NetApp 文件为 OpenShift Virtualization 提供快速的 VM 预配、即时克隆和实时迁移。

在 Azure Red Hat OpenShift 中部署新 VM 时,Trident 会自动在 Azure NetApp 文件上预配 NFS 卷以存储 VM 的磁盘,在所选 Azure NetApp 文件服务级别(标准、高级、超级或灵活)上定制容量和性能。 多个 OpenShift 节点可以同时访问同一卷,从而实现无缝 VM 迁移,而不会中断磁盘访问。

先决条件

  • Microsoft Azure Red Hat OpenShift 集群运行版本 4.18 或更高版本

    注释

    查看 升级指南,尤其是在运行低于 4.17.x 的版本时。

  • 适用于 Azure Red Hat OpenShift 的 OpenShift 虚拟化,可在 OperatorHub 或 OpenShift 控制台上部署

  • NetApp Trident 版本 25.6.2 或更高版本 按照说明从 Red Hat OpenShift OperatorHub 部署 Trident 运算符,并将 Trident 业务流程协调程序部署到 OpenShift 群集。 本页上的示例假定 Trident 业务流程协调程序已部署到 trident OpenShift 群集上的命名空间中。

  • 使用灵活、高级、标准或超级服务级别的至少一个容量池的 Azure NetApp 文件。

    如果这是你第一次使用 Azure NetApp 文件,请参阅 快速入门指南

    本页中的示例假定 Azure Red Hat OpenShift 使用的虚拟网络上存在一个灵活 Azure NetApp 文件委托子网的灵活服务级别容量池。 建议使用灵活的服务级别来控制包含单个 VM 磁盘的单个 Azure NetApp 文件卷的容量和吞吐量。

    注释

    确保 VM 磁盘的容量池中有足够的容量和吞吐量。 有关详细信息,请参阅 Azure NetApp 文件服务级别Azure NetApp 文件性能计算器

Architecture

本页详细介绍了 OpenShift Virtualization 的 Azure NetApp 文件设置以及 Trident 及其虚拟存储池的配置步骤以及相应的 Kubernetes 存储类,如下图所示。 它为一个具有一个吞吐量设置的基本存储类和具有不同吞吐量特征的三个存储类提供了示例。

显示 Azure Red Hat OpenShift 群集和 Azure 资源上的软件组件和配置的关系图。

在您开始之前

此配置过程使用 Trident 使用的服务原则的内置参与者角色。 如果不想使用默认的参与者角色, 可以创建自定义角色 来仅向 Trident 授予所需的权限。

为 Azure NetApp 文件配置 Trident

  1. 为包含 Azure NetApp 文件资源(NetApp 帐户)的资源组创建服务主体。

    az ad sp create-for-rbac --name trident --role Contributor --scopes /subscriptions/<Subscription_ID>/resourceGroups/<Resource_Group>
    

    该命令输出一个appId和一个password。 记录这些输出;接下来需要为 Trident 服务主账号创建机密。

    {
      "appId": "<appID>",
      "displayName": "trident",
      "password": "<password>",
      "tenant": "<tenant>"
    }
    
  2. 在 OpenShift 控制台中,使用 Trident 服务主体中的凭据创建机密来管理 Azure NetApp 文件资源。

    oc create secret generic anf-credentials --from-literal=clientID=<appID> --from-literal=clientSecret=<password> -n trident
    
  3. 为 Trident 配置 Azure NetApp 文件后端。 使用 OpenShift 控制台导入 YAML。

    1. 登录到 OpenShift Web 控制台。
    2. 选择 + masthead 中的图标,然后 导入 YAML
    3. 将 YAML 直接粘贴到编辑器中,或创建一个文件,并使用 “上传 ”按钮上传它。

    此示例配置在 Trident 后端中建立一个虚拟存储池,该池将在稍后被一个 StorageClass 使用。 虚拟存储池使用灵活服务级别容量池,并为每个创建的卷分配了 60 MB/秒的手动 QoS。

    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: <ANF_TridentBackendConfig_name>
      namespace: trident
    spec:
      version: 1
      storageDriverName: azure-netapp-files
      credentials:
          name: anf-credentials
      subscriptionID: <Subscription_ID>
      tenantID: <Tenant_ID>
      location: <region>
      networkFeatures: Standard
      virtualNetwork: <Resource_Group/Virtual_Network_used_by_ARO>
      subnet: <Resource_Group/Virtual_Network_used_by_ARO/Delegate_subnet_for_ANF>
      nfsMountOptions: nfsvers=3,nconnect=4
      defaults:
        unixPermissions: "0777"
        maxThroughput: "60"
        qosType: "Manual"
      labels:
        qos: manual60mbps
    
  4. 确认 Trident 的 Azure NetApp 文件后端配置。

    1. 登录到 OpenShift 控制台。

    2. 在边栏中,选择“ 开始 ”,然后选择 “搜索”。

    3. 选择 TridentBackendConfig 资源。

    4. “资源 ”下拉列表中,选择 “TridentBackendConfig”。

    5. 从“ 项目 ”下拉列表中,选择“ 所有项目”。

    6. TridentBackendConfig 列表中,选择 TridentBackendConfig_name

    7. 选择 YAML

    8. 请确认以下 TridentBackendConfig 设置:

    status:
        backendInfo:
        backendName: <TridentBackendConfig_name>
        backendUUID: <TridentBackendConfig_ID>
        deletionPolicy: delete
        lastOperationStatus: Success
        message: Backend '<TridentBackendConfig_name>' updated
        phase: Bound
    
  5. 将存储类配置为使用 Azure NetApp 文件。

    1. 选择 + masthead 中的图标,然后 导入 YAML
    2. 将 YAML 直接粘贴到编辑器中,或使用 “上传 ”按钮创建文件并将其上传。

    基于 qos 标签,此存储类使用 Trident 后端中的一个虚拟存储池。

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <ANF_StorageClass_name>
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "azure-netapp-files"
      selector: qos=manual60mbps
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    
  6. 为 Azure NetApp 文件配置卷快照类别。 选择 + masthead 中的图标,然后 导入 YAML

    将 YAML 直接粘贴到编辑器中,或使用 “上传 ”按钮创建文件并将其上传。

    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshotClass
    metadata:
      name: <ANF_VolumeSnapshotClass_name>
    driver: csi.trident.netapp.io
    deletionPolicy: Delete
    
  7. 在 OpenShift 控制台中,修改 Azure NetApp Files 基于存储类的存储配置文件,使 ReadWriteMany (RWX) 成为默认值。 此修改允许使用这些存储类中的 VM 磁盘的 VM 使用实时迁移。

    # Linux:
    oc patch storageprofile <ANF_StorageClass_name> --type='json' -p='[{"op": "replace", "path": "/spec/claimPropertySets", "value": [{"accessModes": ["ReadWriteMany"], "volumeMode": "Filesystem"}]}]'
    
  8. AzureNetAppFiles_StorageClass_name 设置为默认。

    1. 在 OpenShift 控制台的边栏中,选择“ 存储 ”,然后选择 “存储类”
    2. 选择AzureNetAppFiles_StorageClass_name的操作菜单 ⋮ 然后设置为默认值

后续步骤

其他资源