ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Velero(Ark)v0.9.0 安装部署总览:云环境与本地集群双路径的备份恢复落地指南

2026/9/17 16:48:01 拓冰建站 浏览量
Velero(Ark)v0.9.0 安装部署总览:云环境与本地集群双路径的备份恢复落地指南 VeleroArkv0.9.0 安装部署总览云环境与本地集群双路径的备份恢复落地指南【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero本指南基于仓库中 Ark v0.9.0 版本的官方安装总览文档install-overview.md系统梳理了 Ark即 Velero 的前身在云提供商与本地On-premises集群两种场景下的部署思路、存储选型决策点以及两个可直接运行的备份/恢复演练示例。读完本文你将掌握 Ark v0.9.0 部署前的完整规划流程如何选择备份对象存储与卷快照方案、如何按云平台选择配置、如何使用 restic 兜底备份无原生快照的卷类型以及如何用仓库自带示例完成一次备份—删除—恢复的完整验证。说明v0.9.0 是 Velero 还以 ArkHeptio Ark命名的历史版本因此该版本文档中的 CLI 为ark、默认命名空间为heptio-arkCRD 注解前缀为ark.heptio.com。当前仓库保留了site/content/docs/v0.9.0/整版文档作为历史归档以下内容均以该版本的实际文档与仓库文件为准。部署方式总览云上还是本地Ark 的核心定位是备份与迁移 Kubernetes 应用及其持久化卷安装层面它并不绑定某种特定环境而是通过插件化的对象存储后端与卷快照后端适配不同平台。v0.9.0 的安装总览将部署路径明确分为两类云提供商Cloud provider使用 AWS、GCP、Azure 或 IBM Cloud Object Store 作为备份数据与快照的存储目标仓库内置了各平台的示例 YAML本地集群On-premises自主选择对象存储后端如 Minio与卷备份方案原生快照插件或 restic在自有集群内完成部署。两条路径共享同一套备份/恢复工作流区别仅在于存储后端与卷数据处理方式。官方完整支持矩阵见 support-matrix.md。此外该版本文档还强调了两个重要的版本里程碑v0.7.0 起Ark 可以在任意命名空间中运行不再固定heptio-ark但需要额外的自定义配置详见 namespace.mdv0.9.0 起新增 restic 集成用于备份无原生快照概念的卷类型需要额外的搭建步骤详见 restic.md。云提供商部署按平台选择配置Ark 仓库内置了一组针对各云平台的示例 YAML它们指定了该平台所需的存储与快照配置。各平台的具体配置文档如下平台配置文档AWSaws-config.mdGCPgcp-config.mdAzureazure-config.mdIBM Cloud Object Store作为 Ark 存储目标ibm-config.md这些平台均属于 Ark 官方维护的备份存储提供商可以直接使用其块存储AWS EBS、Azure Managed Disks、Google Compute Engine Disks做原生 PV 快照。配置的核心内容通常包括对象存储 bucket/容器、云凭据 Secretcloud-credentials、以及 Ark 服务端 Deployment 与 Config 的定义。完整的配置参数如persistentVolumeProvider、backupStorageProvider、bucket、config等字段的含义可进一步查阅各平台配置文档与 config-definition.md。本地部署先做两个关键决策在本地自有数据中心/私有云集群中部署 Ark 时安装总览要求依次完成两个前置决策第一步选择对象存储后端Ark 需要对象存储来存放备份数据。支持矩阵 列出了两条存储提供商路线官方备份存储提供商Ark 团队维护AWS S3、Azure Blob Storage、Google Cloud StorageS3 兼容备份存储提供商社区用户反馈可用但 Ark 团队不进行定期测试IBM Cloud、Minio、Ceph RADOS v12.2.7、DigitalOcean。Ark 通过 Amazon 的 Go SDK 连接 S3 API因此任何实现 S3 接口的存储都可以接入。如果你的备份数据必须留在本地、且没有现成的 S3 兼容对象存储服务Minio是最直接的选项——它可以在集群内以容器方式运行仓库提供了 examples/minio/00-minio-deployment.yaml 示例部署。第二步选择卷备份方案如果需要备份持久卷数据必须选择一种卷备份解决方案。支持矩阵中的 Volume Snapshot Providers 一节列出了官方支持的快照提供商提供商说明AWS EBS官方维护原生 EBS 快照Azure Managed Disks官方维护原生托管磁盘快照Google Compute Engine Disks官方维护原生 GCE 磁盘快照Restic官方维护平台无关的文件级备份Portworx第三方插件原生 Portworx 快照DigitalOceanStackPointCloud 维护的社区插件选择逻辑很清晰如果你的存储平台有原生快照插件例如使用 Portworx 作为持久化存储可以安装其 Ark 插件在 Ark 备份中直接获得原生快照如果存储平台没有可用的原生快照插件则使用 Ark 的 restic 集成它是平台无关的卷数据备份方案。补充0.9.0 的 restic 集成restic 集成为 Ark 提供了开箱即用的几乎任意类型 Kubernetes 卷的备份/恢复能力但它不是对既有快照功能的替代如果你在 AWS 上已经用 EBS 快照做日常备份无需切换到 restic。restic 的典型适用场景是 EFS、AzureFile、NFS、emptyDir、local 等没有原生快照概念的卷类型hostPath 不支持新版 local 卷类型支持。restic 与存储平台解耦也为未来的跨卷类型数据迁移铺平了道路。restic 集成的搭建要点完整步骤见 restic.md应用公共前置资源examples/common/00-prereqs.yaml创建新的 CRD按平台应用 restic DaemonSetAWS/Azure/GCP/Minio 各有对应的20-restic-daemonset.yaml为 restic 数据单独创建一个 bucket不能与主 Ark bucket 共用这是该版本的限制并授予 IAM 用户访问权限在 Ark Config 中取消注释resticLocation并设置值可以是my-restic-bucket或带前缀的my-restic-bucket/ark-repos。restic 集成引入了三个自定义资源ResticRepository按命名空间管理 restic 仓库生命周期执行restic init/check/prune、PodVolumeBackup对 Pod 卷执行restic backup、PodVolumeRestore对 Pod 卷执行restic restore。在备份前需要为 Pod 添加注解backup.ark.heptio.com/backup-volumes卷名列表来声明要备份的卷。安全须知该版本所有由 Ark 创建的 restic 仓库使用同一个静态加密密钥这意味着任何能访问 bucket 的人都可以解密 restic 备份数据因此必须严格限制 restic bucket 的访问权限完整加密计划在后续版本中实现。自定义命名空间运行v0.7.0v0.7.0 起 Ark 可以运行在任意命名空间。做法是编辑示例文件将 examples 下的服务端配置 中的heptio-ark替换为目标命名空间——包括examples/common/00-prereqs.yaml定义 CRD、服务端运行命名空间、数据存储命名空间、ServiceAccount 与 RBAC以及各平台的 Deployment 与 Config 文件AWS 为examples/aws/10-deployment.yaml与examples/aws/00-ark-config.yamlGCP、Azure、IBM 同理同时需要在目标命名空间中创建cloud-credentialsSecret在客户端指定命名空间所有ark客户端命令通过以下方式指定ark client config set namespaceNAMESPACE_VALUE部署后的实战验证两个官方示例安装总览在完成 Ark 服务端搭建后提供了两个可直接执行的示例演练用于验证备份与恢复链路是否打通。示例应用均取自仓库的 examples/nginx-app/ 目录。基础示例不包含 PersistentVolume该示例使用 examples/nginx-app/base.yaml其中定义了nginx-example命名空间、2 副本的 nginx Deployment 与一个 LoadBalancer 类型的 Service不含任何持久化卷用来验证纯资源对象的备份/恢复。启动示例 nginx 应用kubectl apply -f examples/nginx-app/base.yaml创建备份ark backup create nginx-backup --include-namespaces nginx-example模拟灾难——删除命名空间kubectl delete namespaces nginx-example等待命名空间被完全删除。恢复丢失的资源ark restore create --from-backup nginx-backup快照示例包含 PersistentVolume该示例使用 examples/nginx-app/with-pv.yaml相比基础示例额外包含一个请求 50Mi 存储的 PVCnginx-logs默认ReadWriteOnce可注释取消storageClassName以使用默认存储类、挂载该 PVC 的 nginx 容器以及一个特权fsfreeze辅助容器——Pod 注解中的pre.hook.backup.velero.io/post.hook.backup.velero.io钩子会在备份前后对/var/log/nginx目录执行fsfreeze --freeze/--unfreeze确保备份期间文件系统处于一致状态。注意对于 Azure运行 Kubernetes 1.7.2 或更高版本才能支持托管磁盘的 PV 快照。启动示例 nginx 应用kubectl apply -f examples/nginx-app/with-pv.yaml创建带 PV 快照的备份ark backup create nginx-backup --include-namespaces nginx-example模拟灾难——删除命名空间kubectl delete namespaces nginx-example由于动态供给 PV 的默认 reclaim policy回收策略 是 Delete这些命令会触发云提供商删除支撑该 PV 的磁盘。删除是异步的可能需要一些时间。在进入下一步之前请到云提供商控制台确认磁盘已不存在。恢复丢失的资源ark restore create --from-backup nginx-backup验证与清理备份/恢复完成后可通过ark backup describe nginx-backup、ark restore describe RESTORE_NAME查看状态如果出现错误或告警可用ark restore logs RESTORE_NAME深入排查详见 debugging-restores.md。若要彻底删除备份包括对象存储中的数据与 PV 快照执行ark backup delete nginx-backup卸载示例环境但保留备份数据时安全做法是删除本示例创建的全部资源examples/common/、examples/minio/、examples/nginx-app/base.yaml。快速开始从零到第一次恢复若想以最快的路径体验完整的服务端 客户端 备份 恢复流程仓库还提供了 quickstart.md使用 Minio 作为本地 S3 兼容存储依次执行kubectl apply -f examples/common/00-prereqs.yaml、kubectl apply -f examples/minio/启动服务端下载ark客户端到 PATH 中即可用ark backup create nginx-backup --selector appnginx等方式创建备份、删除命名空间模拟故障、再用ark restore create --from-backup nginx-backup恢复。该文档还展示了ark backup delete的清理语义与ark restore get的输出格式Completed状态、WARNINGS/ERRORS计数为 0 即代表恢复成功。小结安装 Ark v0.9.0 的核心决策路径可归纳为先定部署形态云上/本地→ 再定备份存储官方存储或 S3 兼容后端→ 再定卷备份方案原生快照插件或 restic→ 按平台应用示例 YAML 完成服务端与客户端安装 → 用 nginx 示例做备份/恢复演练验证。该版本同时开启了两个关键能力——任意命名空间运行v0.7.0与 restic 卷备份集成v0.9.0它们共同构成了 Ark 在多环境、多存储形态下灵活落地的技术基础。部署过程中涉及的平台配置、存储选型、快照提供商与 restic 细节均可继续阅读本仓库site/content/docs/v0.9.0/目录下的对应文档深入展开。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考