You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将AWS EFS卷挂载到Minikube集群并在Argo Workflows中使用

Minikube集群挂载AWS EFS卷完整操作步骤

前置准备

  • 已在AWS控制台创建对应EFS实例,确保EFS关联的安全组入方向开放NFS端口(2049),允许本地机器公网IP访问
  • 本地Minikube集群处于运行状态,已安装kubectl命令行工具
  • 本地已配置有权限读取EFS信息的AWS CLI凭证

步骤1:安装Minikube节点NFS依赖

Minikube默认没有预装NFS客户端工具,先执行命令安装:

minikube ssh "sudo apt update && sudo apt install -y nfs-common"

如果你的Minikube使用RPM系基础镜像,将上述命令中的apt替换为yum即可。


步骤2:部署AWS EFS CSI驱动到Minikube集群

执行以下命令部署官方稳定版EFS CSI驱动:

kubectl apply -k "github.com/kubernetes-sigs/aws-efs-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-2.5"

部署完成后验证驱动Pod运行状态:

kubectl get pods -n kube-system | grep efs-csi

正常情况下可看到efs-csi-controller和efs-csi-node相关Pod全部处于Running状态。


步骤3:创建EFS存储类(StorageClass)

新建efs-sc.yaml配置文件,将参数替换为你自己的EFS信息:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: aws-efs
provisioner: efs.csi.aws.com
parameters:
  fileSystemId: fs-xxxxxxx # 替换为你的EFS实例ID
  region: cn-north-1 # 替换为EFS所属的AWS区域
  provisioningMode: efs-ap
  directoryPerms: "755"

应用配置创建存储类:

kubectl apply -f efs-sc.yaml

步骤4:创建供Argo Workflows使用的PVC

新建efs-pvc.yaml配置文件,注意命名空间和Argo Workflows部署的命名空间保持一致:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: efs-pvc
  namespace: argo # 替换为Argo Workflows所在命名空间
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: aws-efs
  resources:
    requests:
      storage: 10Gi # EFS为弹性计费,此处数值仅做校验可随意填写

应用配置创建PVC:

kubectl apply -f efs-pvc.yaml

验证PVC状态,正常状态为Bound:

kubectl get pvc -n argo efs-pvc

步骤5:在Argo Workflow模板中引用存储

可直接在Workflow模板中通过PVC名称挂载EFS,参考示例如下:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  generateName: efs-test-
  namespace: argo
spec:
  entrypoint: efs-demo
  volumes:
  - name: efs-storage
    persistentVolumeClaim:
      claimName: efs-pvc # 对应上文创建的PVC名称
  templates:
  - name: efs-demo
    container:
      image: alpine:latest
      command: [sh, -c]
      args: ["echo '测试内容' > /mnt/efs/test.txt && cat /mnt/efs/test.txt"]
      volumeMounts:
      - name: efs-storage
        mountPath: /mnt/efs # 容器内挂载路径可自定义

提交测试Workflow,执行成功后即可在AWS EFS控制台验证文件已正常写入。


常见问题排查

  • PVC一直处于Pending状态:优先检查EFS安全组是否放行本地公网IP的2049端口,再确认EFS ID、区域配置是否正确
  • 容器挂载失败:执行minikube ssh "nslookup 你的EFS域名"验证Minikube节点是否能正常解析EFS地址,确保本地网络到AWS服务的连通性正常

内容的提问来源于stack exchange,提问作者snorkel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:45:03