5.11. Azure File CSI Driver Operator
5.11.1. 概述
OpenShift Container Platform 可以使用 Microsoft Azure File Storage 的 Container Storage Interface(CSI)驱动程序置备持久性卷(PV)。
在使用 CSI Operator 和驱动程序时,建议先熟悉 持久性存储和配置 CSI 卷。
要创建挂载到 Azure File 存储资产中的 CSI 置备 PV,OpenShift Container Platform 在 openshift-cluster-csi-drivers
命名空间中默认安装 Azure File CSI Driver Operator 和 Azure File CSI 驱动程序。
-
Azure File CSI Driver Operator 提供了一个名为
azurefile-csi
的存储类,您可以使用它来创建持久性卷声明(PVC)。 - Azure File CSI 驱动程序 允许您创建并挂载 Azure File PV。Azure File CSI 驱动程序支持动态卷置备,方法是允许按需创建存储卷,使集群管理员无需预置备存储。
Azure File CSI Driver Operator 不支持 :
- 虚拟硬盘(VHD)
- 网络文件系统(NFS):OpenShift Container Platform 不部署由 NFS 支持的存储类。
- 在启用了 FIPS 模式的节点上运行。
有关支持的功能的更多信息,请参阅支持的 CSI 驱动程序和功能。
5.11.2. NFS 支持
OpenShift Container Platform 支持带有 Network File System (NFS)的 Azure File Container Storage Interface (CSI) Driver Operator,其限制如下:
使用调度到 control plane 节点的 Azure File NFS 卷创建 pod 会导致挂载被拒绝。
要临时解决这个问题:如果您的 control plane 节点可以调度,pod 可以在 worker 节点上运行,使用
nodeSelector
或 Affinity 将 pod 调度到 worker 节点上。FS 组策略行为:
重要带有 NFS 的 Azure File CSI 不遵循 pod 请求的
fsGroupChangePolicy
。带有 NFS 的 Azure File CSI 会应用默认的OnRootMismatch
FS Group 策略,无论 pod 请求的策略是什么。Azure File CSI Operator 不会自动为 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
5.11.3. 关于 CSI
在过去,存储厂商一般会把存储驱动作为 Kubernetes 的一个部分提供。随着容器存储接口 (CSI) 的实现,第三方供应商可以使用标准接口来提供存储插件,而无需更改核心 Kubernetes 代码。
CSI Operators 为 OpenShift Container Platform 用户提供了存储选项,如卷快照,它无法通过 in-tree 卷插件实现。