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

如何升级K8s中MinIO部署的Helm Chart/镜像且不丢失PV数据?

解决MinIO升级后EFS存储数据丢失问题

排查挂载路径与MinIO配置匹配

  • 确认Helm Chart的values.yaml中,persistence.existingClaim已正确指定你手动创建的PVC名称,避免升级时重新关联存储卷。
  • 检查MinIO容器的挂载路径:默认MinIO将数据存在/data目录,确保PVC挂载的目标路径和原有部署完全一致,比如:
    persistence:
      existingClaim: "minio-static-pvc"
      mountPath: "/data" # 必须和旧部署的挂载路径保持一致
    
  • 验证MinIO启动参数,避免升级时通过command或args修改了存储根目录,导致指向错误路径。

检查EFS接入点与权限配置

  • 确认静态PV的volumeHandle是原有数据所在的EFS接入点ID,可通过AWS控制台核对接入点关联的文件系统路径是否为MinIO旧数据的存储路径。
  • 确保EFS接入点的权限配置和MinIO容器运行用户匹配:MinIO默认以999用户运行,需将接入点的posixUser.uid和posixUser.gid设为999,或保证EFS上原有数据的权限允许999用户读写,静态PV示例:
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: minio-static-pv
    spec:
      capacity:
        storage: 10Gi
      volumeMode: Filesystem
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      csi:
        driver: efs.csi.aws.com
        volumeHandle: fs-xxxx::ap-xxxx # 正确的接入点ID
        volumeAttributes:
          dirPerms: "777" # 或匹配MinIO用户的权限
    
  • 检查Kubernetes节点安全组是否允许访问EFS的NFS端口(2049),避免挂载失败导致MinIO重新初始化。

核对Helm升级时的配置覆盖

  • 执行helm get values <release-name>查看当前部署的实际配置,对比旧配置确认:
    • persistence.enabled未被意外设为false
    • MinIO运行模式(standalone/distributed)未变更,分布式模式需保持原有节点数量和配置,否则元数据无法加载
  • 若升级Helm Chart版本,查看Chart变更日志,确认是否有存储挂载路径或核心配置的默认值变更,需手动对齐旧配置。

验证MinIO元数据完整性

  • 直接挂载EFS到本地服务器,检查/data目录下是否存在原有数据(如存储桶文件夹、.minio.sys元数据目录):
    • 若数据存在但MinIO无法识别,确认MinIO的root凭证(access key/secret key)和旧部署一致,否则无法加载存储桶、策略等元数据
    • 检查加密配置是否变更,若升级时修改了加密规则,会导致原有数据无法解密

排查EFS数据本身的问题

  • 检查EFS生命周期管理规则,确认没有自动删除旧文件的策略
  • 查看EFS访问日志,排查升级前后是否有异常删除操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:52:27