- 文档首页
容器服务
弹性容器实例 VCI
用户指南
存储
通过 FSX 挂载 EFS
通过 FSX 挂载 EFS
本文为您介绍如何在 VCI 业务中通过 FSX 客户端使用 EFS 静态存储卷。
VCI 支持通过 FSX 协议对接弹性文件存储(EFS),作为 EFS 高可用 POSIX(Portable Operating System Interface)文件系统客户端。通过此客户端,可将 EFS 存储挂载到 Linux 系统,使得存储可以作为 Linux 系统的本地文件系统,实现数据的存储和管理。
在 VCI 中通过 FSX 挂载 EFS 时,注意如下使用限制:
- 有状态负载(StatefulSet)需要独占一个卷,暂不支持使用手动创建的存储卷声明。
- FSX 客户端当前仅支持 x86_64 架构,暂不支持在 Windows 和 macOS 环境使用,详情请参见 运行环境。
- 使用 kubectl 命令行操作时,需要提前在本地安装 kubectl 工具,并通过 kubectl 连接目标集群。详细说明参见 使用 kubectl 连接集群。
- 在左侧导航栏中,选择 集群。单击目标集群名称,进入集群管理页面。
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷。
- 单击 创建存储卷,在弹出的配置页面中,完成参数配置。
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷声明。
- 单击 创建存储卷声明,在弹出的配置页面中,完成参数配置。
EFS 文件存储卷创建完成后,可通过添加卷的方式挂载到工作负载使用,包括:无状态负载、有状态负载、任务、定时任务、守护进程。
可通过创建工作负载或更新工作负载操作的容器配置步骤,为工作负载添加卷并挂载卷。详细操作参见:工作负载。 已经连接集群的情况下,可通过 kubectl 命令行使用 EFS 静态存储卷。 创建策略的操作步骤,请参见 新建自定义策略。其中,使用 IAM 身份挂载存储并执行相应操作时,相关参数配置说明和所需的权限,请参见 配置接入点策略。 创建 EFS 策略的 JSON 示例如下所示。
"Resource": ["trn:efs:<RegionId>:<AccountId>:filesystem/<FilesystemId>"],
"volc:RequestTag/accesspoint": "<接入点 ID>"
"efs:VerifyAccessPoint",
"efs:DescribeAccessPoints",
"efs:CreateAccessPoint",
"efs:ModifyAccessPoint",
- 创建 PV 的 YAML 文件。示例文件vci-efs-fsx-static-pv.yaml的代码如下所示。
name: vci-efs-static-pv
driver: fsx.csi.volcengine.com
volumeHandle: vci-efs-static-pv
server: ap-684b1***.cnshbe27***.3qda7dutskr***.cn-shanghai.efs.ivolces.com
kubectl create -f vci-efs-fsx-static-pv.yaml
- 创建 PVC 的 YAML 文件。示例文件vci-efs-fsx-static-pvc.yaml的代码如下所示。
kind: PersistentVolumeClaim
name: vci-efs-static-pvc
volumeName: vci-efs-static-pv
kubectl create -f vci-efs-fsx-static-pvc.yaml
- 执行以下命令,查看 PVC 与 PV 的静态绑定结果。
- 预期输出结果如下,表示 PVC 与 PV 静态绑定成功。
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
vci-efs-fsx-static-pvc Bound vci-efs-fsx-static-pv 20Gi RWX 33s
- 创建 Deployment 的 YAML 文件。示例文件vci-efs-fsx-static-deployment.yaml的代码如下所示。
name: vci-efs-static-deployment
app: vci-efs-static-deployment
app: vci-efs-static-deployment
- image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0
imagePullPolicy: IfNotPresent
claimName: vci-efs-static-pvc
kubectl create -f vci-efs-fsx-static-deployment.yaml
按照上文示例创建工作负载并挂载存储卷后,您可以通过以下方式验证存储卷的挂载和持久化存储。
- 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。
kubectl exec vci-efs-static-deployment-xxx -- df | grep tmp
cnshbe27***.3qda7dutskr***.efs.ivolces.com:/ 10995116277760 0 10995116277760 0% /tmp
- 执行以下命令,查看 Pod 中的挂载路径,即查看存储卷中的数据。
kubectl exec vci-fsx-static-deployment-xxx -- ls /tmp
kubectl exec vci-fsx-static-deployment-xxx -- touch /tmp/test
kubectl delete pod vci-fsx-static-deployment-xxx
- 执行以下命令,查看新创建 Pod 下的存储卷挂载路径。
kubectl exec vci-fsx-static-deployment-xxx -- ls /tmp
- 预期返回如下,可以看到存储卷中写入的文件依然存在,未随着 Pod 的删除而被删除,实现了数据的持久化存储。
最近更新时间:2026.09.03 21:44:53