×

概述

OpenShift Container Platform 能够使用 Microsoft Azure 文件存储的容器存储接口 (CSI) 驱动程序来预配持久卷 (PV)。

使用 CSI 运算符和驱动程序时,建议您熟悉持久性存储配置 CSI 卷

为了创建挂载到 Azure 文件存储资源的 CSI 预配的 PV,OpenShift Container Platform 默认在openshift-cluster-csi-drivers命名空间中安装 Azure 文件 CSI 驱动程序运算符和 Azure 文件 CSI 驱动程序。

  • Azure 文件 CSI 驱动程序运算符提供了一个名为azurefile-csi的存储类,您可以使用它来创建持久卷声明 (PVC)。如果需要,您可以禁用此默认存储类(请参见管理默认存储类)。

  • Azure 文件 CSI 驱动程序使您可以创建和挂载 Azure 文件 PV。Azure 文件 CSI 驱动程序支持动态卷预配,允许按需创建存储卷,从而无需集群管理员预先预配存储。

Azure 文件 CSI 驱动程序运算符不支持

  • 虚拟硬盘 (VHD)

  • 在为服务器消息块 (SMB) 文件共享启用了联邦信息处理标准 (FIPS) 模式的节点上运行。但是,网络文件系统 (NFS) 支持 FIPS 模式。

有关受支持功能的更多信息,请参见受支持的 CSI 驱动程序和功能

NFS 支持

OpenShift Container Platform 4.14 及更高版本支持 Azure 文件容器存储接口 (CSI) 驱动程序操作符与网络文件系统 (NFS),但存在以下限制

  • 在控制平面节点上调度使用 Azure 文件 NFS 卷的 Pod 会导致挂载被拒绝。

    解决方法:如果您的控制平面节点是可调度的,并且 Pod 可以在工作节点上运行,请使用 `nodeSelector` 或亲和性将 Pod 调度到工作节点。

  • FS Group 策略行为

    使用 NFS 的 Azure 文件 CSI 不会遵守 Pod 请求的 fsGroupChangePolicy。使用 NFS 的 Azure 文件 CSI 会应用默认的 OnRootMismatch FS Group 策略,而不管 Pod 请求的策略是什么。

  • Azure 文件 CSI 操作符不会自动创建 NFS 的存储类。您必须手动创建它。使用类似于以下的文件

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <storage-class-name> (1)
    provisioner: file.csi.azure.com (2)
    parameters:
      protocol: nfs (3)
      skuName: Premium_LRS  # available values: Premium_LRS, Premium_ZRS
    mountOptions:
      - nconnect=4
    1 存储类名称。
    2 指定 Azure 文件 CSI 提供程序。
    3 指定 NFS 作为存储后端协议。

关于 CSI

传统上,存储供应商会将存储驱动程序作为 Kubernetes 的一部分提供。随着容器存储接口 (CSI) 的实现,第三方提供商可以使用标准接口交付存储插件,而无需更改核心 Kubernetes 代码。

CSI 操作符为 OpenShift Container Platform 用户提供了诸如卷快照之类的存储选项,而这些选项在树内卷插件中是无法实现的。