首页
/ Velero 数据迁移实战:从 AWS EKS 到本地 K3s 集群的存储方案转换

Velero 数据迁移实战:从 AWS EKS 到本地 K3s 集群的存储方案转换

2025-05-25 03:31:53作者:沈韬淼Beryl

背景与挑战

在现代云原生架构中,数据迁移是一个常见但充满挑战的任务。本文将以一个真实案例为基础,探讨如何利用 Velero 工具将 PostgreSQL 和 Elasticsearch 从 AWS EKS 集群(使用 gp2 存储类)迁移到本地 K3s 集群(使用 local-path 存储类)。

技术方案设计

1. 源集群准备

在 AWS EKS 源集群中,我们首先部署 Velero 并配置 AWS S3 作为备份存储位置。关键配置包括:

  • 使用 AWS 凭证文件进行认证
  • 指定 S3 存储桶和区域
  • 启用文件系统备份模式(--default-volumes-to-fs-backup)
  • 包含必要的命名空间(test-ns)

2. 目标集群准备

在目标 K3s 集群中,我们同样部署 Velero 并连接到相同的 S3 存储桶。特别注意:

  • 配置存储类映射(gp2 → local-path)
  • 禁用卷快照功能(因为目标环境是本地存储)
  • 确保使用相同的插件版本以保证兼容性

迁移过程中的关键发现

在执行迁移后,虽然大部分资源成功迁移,但发现数据库中的原有数据未能正确迁移。这揭示了文件系统备份(fs-backup)方法的一个重要限制:对于数据库类应用,fs-backup 无法保证数据一致性

专业建议与最佳实践

1. 数据一致性保障

对于数据库类应用(如 PostgreSQL、Elasticsearch),推荐使用 Velero 的 Data Mover 功能进行备份迁移。Data Mover 提供了:

  • 基于快照的备份机制
  • 更好的数据一致性保证
  • 对运行中数据库的支持

2. 存储类转换策略

当源和目标环境使用不同的存储类时,可通过 ConfigMap 实现自动转换:

apiVersion: v1
data:
  gp2: local-path
kind: ConfigMap
metadata:
  labels:
    velero.io/change-storage-class: RestoreItemAction
    velero.io/plugin-config: ""
  name: change-storage-class-config
  namespace: velero

3. 排除资源策略

在复杂环境中,某些资源可能不需要迁移或需要特殊处理。Velero 支持通过 --exclude-resources 参数排除特定资源类型:

velero restore create restore-jan20 \
  --from-backup backup-jan20 \
  --exclude-resources orders.acme.cert-manager.io,certificaterequests.cert-manager.io,certificates.cert-manager.io

经验总结

  1. 环境差异评估:在跨云/本地迁移前,必须充分评估源和目标环境的差异,特别是存储类的不同。

  2. 备份方法选择:根据应用类型选择合适的备份方法,数据库类应用优先考虑 Data Mover。

  3. 验证机制:建立完善的验证流程,确保数据完整性和一致性。

  4. 渐进式迁移:对于生产环境,建议采用渐进式迁移策略,先迁移非关键组件,验证无误后再迁移核心数据。

通过本文的实践案例,我们展示了 Velero 在复杂环境迁移中的强大能力,同时也强调了正确选择备份方法和充分验证的重要性。这些经验对于计划进行类似迁移的团队具有重要参考价值。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
136
187
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
884
523
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
362
381
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
182
264
kernelkernel
deepin linux kernel
C
22
5
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
7
0
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.09 K
0
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
84
4
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
613
60
open-eBackupopen-eBackup
open-eBackup是一款开源备份软件,采用集群高扩展架构,通过应用备份通用框架、并行备份等技术,为主流数据库、虚拟化、文件系统、大数据等应用提供E2E的数据备份、恢复等能力,帮助用户实现关键数据高效保护。
HTML
118
78