创建 NFS 共享存储类
基于社区的 NFS CSI(Container Storage Interface)存储驱动,提供访问多个 NFS 存储系统或账户的能力。
与传统的 NFS 访问客户端-服务器模式不同,NFS 共享存储采用社区的 NFS CSI(Container Storage Interface)存储插件,更符合 Kubernetes 设计理念,并允许客户端访问多个服务器。
目录
前提条件
- 必须配置好 NFS 服务器,并获取其访问方式。目前平台支持三种 NFS 协议版本:
v3、v4.0和v4.1。可以在服务器端执行nfsstat -s来查看版本信息。
部署 Alauda Container Platform NFS CSI 插件
通过 Web 控制台部署
-
进入 Administrator。
-
在左侧导航栏点击 Storage > StorageClasses。
-
点击 Create StorageClass。
-
在 NFS CSI 右侧点击 Deploy,跳转到 Plugins 页面。
-
在
Alauda Container Platform NFS CSI插件右侧点击 ⋮ > Install。 -
等待部署状态显示 Deployment Successful 后完成部署。
通过 YAML 部署
Alauda Container Platform NFS CSI 是一个 Non-config plugin,模块名为 nfs
创建 NFS 共享存储类
-
点击 Create Storage Class。
注意:以下内容以表单形式展示,您也可以选择通过 YAML 完成操作。
-
选择 NFS CSI,点击 Next。
-
按照以下说明配置相关参数。
NOTEsubDir字段仅支持以下三种变量,NFS CSI Driver 会自动解析:${pvc.metadata.namespace}:PVC 所在命名空间。${pvc.metadata.name}:PVC 名称。${pv.metadata.name}:PV 名称。
subDir命名规则必须保证子目录名称唯一,否则多个 PVC 可能共享同一子目录,导致数据冲突。推荐配置示例:
${pvc.metadata.namespace}_${pvc.metadata.name}_${pv.metadata.name}<cluster-identifier>_${pvc.metadata.namespace}_${pvc.metadata.name}_${pv.metadata.name}
该配置适用于多个 Kubernetes 集群共享同一 NFS 服务器的场景,通过在子目录命名规则中加入集群标识(如集群名称),确保集群间区分明确。
不推荐配置示例:
-
${pvc.metadata.namespace}-${pvc.metadata.name}-${pv.metadata.name}避免使用 - 作为分隔符,可能导致子目录名称歧义。例如:两个 PVC 分别命名为ns-1/test和ns/1-test,都可能生成相同子目录ns-1-test。 -
${pvc.metadata.namespace}/${pvc.metadata.name}/${pv.metadata.name}不要配置 subDir 生成嵌套目录。NFS CSI Driver 删除 PVC 时只会删除最末级目录${pv.metadata.name},会在 NFS 服务器上留下孤立的父目录。
-
确认配置信息无误后,点击 Create。