Ark(Velero 前身)v0.5.0 命令行参考:Kubernetes 备份、恢复与定时调度的完整命令指南

发布时间:2026/9/16 12:23:22
Ark(Velero 前身)v0.5.0 命令行参考:Kubernetes 备份、恢复与定时调度的完整命令指南 ArkVelero 前身v0.5.0 命令行参考Kubernetes 备份、恢复与定时调度的完整命令指南【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/veleroArk 是 Velero 的前身其客户端 CLI 提供了一套类似kubectl的命令模型用于对 Kubernetes 集群发起临时备份ad-hoc backup、定时备份scheduled backup和恢复restore操作。本文基于仓库site/content/docs/v0.5.0/cli-reference/目录下的完整命令参考文档系统整理ark的全部子命令、参数语义、凭据解析规则与实战用法帮助你在使用 Ark v0.5.0 或迁移到 Velero 时快速掌握其命令行操作方式。Ark 客户端与命令体系概览Ark 是一个面向 Kubernetes 集群资源的灾难恢复工具提供了一种简单、可配置、运维稳健的方式来备份应用状态及其关联数据。其 CLI 设计借鉴了kubectl的交互模型——你既可以直接执行ark get backup、ark create schedule也可以用等价的ark backup get、ark schedule create完成同一操作两种语法完全等价可以根据习惯任选其一。整个命令树由 7 个一级命令组成本文档目录site/content/docs/v0.5.0/cli-reference/中为每个命令都提供了独立的参考页命令用途参考文档ark backup管理备份create / get / logs / downloadark_backup.mdark create创建 Ark 资源backup / restore / scheduleark_create.mdark get查询 Ark 资源backups / restores / schedulesark_get.mdark restore管理恢复create / delete / get / logsark_restore.mdark schedule管理定时备份create / delete / getark_schedule.mdark server运行 Ark 服务端ark_server.mdark version打印版本与关联镜像信息ark_version.md除了-h, --help之外这些命令还共享一组从父命令继承的全局选项详见下文全局选项小节。所有命令的完整参数都可以通过 CLI 自身的--help标志随时查看与文档内容保持一致。运行 Ark 客户端容器化方式与本地构建推荐使用容器化客户端虽然可以自行编译并运行ark可执行文件但官方推荐使用容器化版本。在快速开始quickstart中给出的 alias 如下alias arkdocker run --rm -u $(id -u) -v $(dirname $KUBECONFIG):/kubeconfig -e KUBECONFIG/kubeconfig/$(basename $KUBECONFIG) gcr.io/heptio-images/ark:latest这个 alias 的每个部分都值得拆解理解--rm容器运行结束后自动删除避免残留容器-u $(id -u)以当前用户 ID 运行容器避免文件权限问题-v $(dirname $KUBECONFIG):/kubeconfig将 kubeconfig 所在目录挂载到容器内的/kubeconfig-e KUBECONFIG/kubeconfig/$(basename $KUBECONFIG)在容器内把KUBECONFIG环境变量重新指向挂载后的路径使容器内的 Ark 客户端能够读取到宿主机的集群凭据gcr.io/heptio-images/ark:latestArk 客户端镜像。只要你的KUBECONFIG环境变量已设置这个 alias 就会自动为你指定正确的 Kubernetes 集群凭据。建议将镜像固定为具体的 v0.5.0 版本标签如gcr.io/heptio-images/ark:v0.5.0而不是latest以保证行为可复现。本地构建方式如果你选择自行构建需要先在本地完成编译然后直接调用生成的ark可执行文件并通过--kubeconfig或$KUBECONFIG提供集群访问凭据。无论采用哪种运行方式命令行参数与行为完全一致。Kubernetes 集群凭据的解析顺序Ark 客户端在寻找集群凭据时会依次尝试以下三个来源命中即停--kubeconfig命令行标志优先级最高显式指定的 kubeconfig 文件路径$KUBECONFIG环境变量当未指定--kubeconfig时读取集群内凭据in-cluster credentials仅当 Ark 运行在 Pod 内部时有效使用 ServiceAccount 自动挂载的凭据。这一解析逻辑体现在所有命令的全局--kubeconfig标志描述中Path to the kubeconfig file to use to talk to the Kubernetes apiserver. If unset, try the environment variable KUBECONFIG, as well as in-cluster configuration。理解这个优先级顺序有助于排查客户端连不上集群类问题——例如明明设置了$KUBECONFIG却在命令中误传了无效的--kubeconfig路径时Ark 会直接使用命令行指定的路径而忽略环境变量。全局选项所有ark命令共享的参数以下是ark根命令及其所有子命令都支持的全局选项在子命令中显示为Options inherited from parent commands标志类型/默认值说明--alsologtostderr布尔开关同时将日志写入标准错误和日志文件-h, --help布尔开关显示帮助信息--kubeconfig string字符串连接 Kubernetes apiserver 所用的 kubeconfig 路径未设置时依次尝试KUBECONFIG环境变量与集群内配置--log_backtrace_at traceLocation默认:0当日志命中file:N位置时输出堆栈回溯--log_dir string字符串非空时将日志文件写入该目录--logtostderr布尔开关日志输出到标准错误而不是文件--stderrthreshold severity默认2达到该严重级别及以上的日志转至 stderr-v, --v LevelLevel 类型V 级别日志的日志级别--vmodule moduleSpec模块规格逗号分隔的patternN列表用于按文件过滤日志级别这些标志源自 glog 风格的日志体系。日常使用中最常用的是-v用于提高日志详细度、--kubeconfig用于指定集群凭据其余日志参数主要用于服务端排查场景。ark 根命令ark根命令的功能定义是备份并恢复 Kubernetes 集群资源Back up and restore Kubernetes cluster resources。ark [command]其子命令即上述命令树中的 7 个一级命令可通过ark --help查看完整列表也可参考 ark.md。ark server运行 Ark 服务端ark server [flags]ark server用于启动 Ark 服务端进程通常部署在集群内。除了全局选项外它只有一个专属参数标志默认值说明--log-levelinfo日志级别合法值为debug、info、warning、error、fatal、panic排障时可将日志级别临时调低到debug以获得最详细的服务端日志ark server --log-level debugark version查看版本信息ark version [flags]ark version用于打印 Ark 客户端版本及与之关联的镜像信息。该命令不接收任何专属参数仅-h, --help。在排查客户端与服务端版本不匹配的问题时这是一个常用的第一步诊断命令。ark backup管理备份ark backup是备份操作的主入口下辖 create、get、logs、download 四个子命令详见 ark_backup.md。ark backup create创建备份ark backup create NAME [flags]这是 Ark 最核心的命令用于发起一次备份Backup 对象。完整参数如下标志类型/默认值说明--exclude-namespaces stringArray字符串数组从备份中排除的命名空间--exclude-resources stringArray字符串数组从备份中排除的资源格式为resource.group如storageclasses.storage.k8s.io--include-cluster-resources optionalBool[true]可选布尔默认true备份中是否包含集群级cluster-scoped资源--include-namespaces stringArray字符串数组默认*备份中包含的命名空间用*表示全部命名空间--include-resources stringArray字符串数组备份中包含的资源格式为resource.group用*表示全部资源--label-columns stringArray字符串数组逗号分隔的标签列表以列为单位显示在输出中--labels mapStringString键值映射应用到备份对象上的标签-o, --output string字符串输出显示格式对 create 命令而言仅显示对象而不发送到服务端。合法值为table、json、yaml-l, --selector labelSelector标签选择器默认none只备份匹配该标签选择器的资源--show-labels布尔开关在输出最后一列显示标签--snapshot-volumes optionalBool[true]可选布尔默认true是否在备份中为 PersistentVolume 创建快照--ttl duration时长默认24h0m0s备份可被垃圾回收前的保留时长典型用法示例# 备份所有命名空间、所有资源默认行为PV 快照保留 48 小时 ark backup create daily-backup --ttl 48h0m0s # 只备份指定命名空间并排除特定资源类型 ark backup create app-backup \ --include-namespaces default,prod \ --exclude-resources storageclasses.storage.k8s.io,events # 只备份匹配标签的资源并关闭 PV 快照 ark backup create labeled-backup -l appmyapp --snapshot-volumesfalse几个值得注意的语义--include-resources与--exclude-resources的资源格式统一为resource.group例如deployments.apps、storageclasses.storage.k8s.io这与 Kubernetes API 的 GroupVersion 约定一致optionalBool类型意味着可以显式传--snapshot-volumesfalse或--snapshot-volumestrue不传则使用默认值--ttl控制备份的生命周期过期后的备份由垃圾回收流程清理-o json/-o yaml在 create 命令中的行为是预览——只打印将要提交的对象而不真正发送到服务端适合在脚本化场景中先校验参数再执行。ark backup get列出备份ark backup get [flags]标志类型/默认值说明--label-columns stringArray字符串数组逗号分隔的标签列表以列显示-o, --output string默认table输出格式table/json/yaml-l, --selector string字符串只显示匹配该标签选择器的条目--show-labels布尔开关在最后一列显示标签示例ark backup get ark backup get -o json ark backup get -l appmyapp --show-labelsark backup logs获取备份日志ark backup logs BACKUP [flags]标志类型/默认值说明--timeout duration默认1m0s等待日志返回的最长时长当某个备份失败或行为异常时通过该命令拉取该次备份的执行日志ark backup logs daily-backup ark backup logs daily-backup --timeout 2mark backup download下载备份数据ark backup download NAME [flags]标志类型/默认值说明--force布尔开关强制下载若目标文件已存在则覆盖-o, --output string字符串输出文件路径默认写到当前目录下的NAME-data.tar.gz--timeout duration默认1m0s等待下载请求处理的最长时长# 默认下载到 ./daily-backup-data.tar.gz ark backup download daily-backup # 指定输出路径并在文件已存在时强制覆盖 ark backup download daily-backup -o /tmp/daily-backup.tar.gz --force下载得到的tar.gz归档包含备份的集群资源清单与元数据可用于离线审计或手动恢复。ark restore管理恢复ark restore是恢复操作的主入口下辖 create、delete、get、logs 四个子命令详见 ark_restore.md。ark restore create创建恢复ark restore create BACKUP [flags]与ark backup create相比restore create 的过滤参数--include-namespaces、--exclude-namespaces、--include-resources、--exclude-resources、--include-cluster-resources、-l/--selector等语义一致但多了两个恢复专属参数标志类型/默认值说明--namespace-mappings mapStringString键值映射命名空间映射格式为src1:dst1,src2:dst2,...将备份中的命名空间恢复到目标命名空间--restore-volumes optionalBool[true]可选布尔默认true是否从快照恢复卷数据完整参数一览标志类型/默认值说明--exclude-namespaces stringArray字符串数组从恢复中排除的命名空间--exclude-resources stringArray字符串数组从恢复中排除的资源resource.group格式--include-cluster-resources optionalBool[true]可选布尔默认true是否恢复集群级资源--include-namespaces stringArray默认*恢复中包含的命名空间--include-resources stringArray字符串数组恢复中包含的资源--label-columns stringArray字符串数组以列显示的标签--labels mapStringString键值映射应用到恢复对象上的标签--namespace-mappings mapStringString键值映射命名空间映射src1:dst1,src2:dst2,...-o, --output string字符串输出格式table/json/yaml--restore-volumes optionalBool[true]可选布尔默认true是否从快照恢复卷-l, --selector labelSelector默认none只恢复匹配该标签选择器的资源--show-labels布尔开关在最后一列显示标签典型用法# 从指定备份完整恢复含卷数据 ark restore create daily-backup # 恢复到不同的命名空间迁移场景 ark restore create daily-backup \ --namespace-mappings prod:staging,default:preview # 只恢复部分命名空间不恢复卷数据 ark restore create daily-backup \ --include-namespaces staging --restore-volumesfalse--namespace-mappings是实现跨命名空间迁移的关键参数也是 Velero 后续版本中 namespace remapping 功能的雏形。ark restore get / logs / deleteark restore get [flags] # 列出恢复 ark restore logs RESTORE [flags] # 获取恢复日志 ark restore delete NAME [flags] # 删除恢复ark restore get的参数与ark backup get一致--label-columns、-o/--output默认table、-l/--selector、--show-labels见 ark_restore_get.mdark restore logs RESTORE仅支持--timeout默认1m0s用于查看某次恢复的执行日志见 ark_restore_logs.mdark restore delete NAME删除指定的恢复对象无专属参数见 ark_restore_delete.md。ark schedule管理定时备份ark schedule用于创建按 cron 表达式周期性执行的备份下辖 create、delete、get 三个子命令详见 ark_schedule.md。ark schedule create创建定时备份ark schedule create NAME [flags]其参数与ark backup create基本一致唯一新增的是--schedule标志类型/默认值说明--schedule string字符串必填cron 表达式指定该备份的周期性执行计划--exclude-namespaces stringArray字符串数组排除的命名空间--exclude-resources stringArray字符串数组排除的资源--include-cluster-resources optionalBool[true]默认true是否包含集群级资源--include-namespaces stringArray默认*包含的命名空间--include-resources stringArray字符串数组包含的资源--label-columns stringArray字符串数组以列显示的标签--labels mapStringString键值映射应用到备份对象上的标签-o, --output string字符串输出格式table/json/yaml-l, --selector labelSelector默认none只备份匹配标签的资源--show-labels布尔开关在最后一列显示标签--snapshot-volumes optionalBool[true]默认true是否为 PV 创建快照--ttl duration默认24h0m0s每个备份的保留时长示例# 每天凌晨 2 点执行一次全量备份每个备份保留 7 天 ark schedule create nightly \ --schedule 0 2 * * * \ --ttl 168h0m0s # 每 30 分钟备份指定命名空间 ark schedule create frequent \ --schedule */30 * * * * \ --include-namespaces prod --snapshot-volumesfalsecron 表达式遵循标准的 5 段格式分 时 日 月 周。调度器会按该表达式周期性地为每个触发点创建一个新的 Backup 对象每个 Backup 都独立继承 schedule 中定义的过滤与快照参数。ark schedule get / deleteark schedule get [flags] # 列出定时备份 ark schedule delete NAME [flags] # 删除定时备份ark schedule get参数与ark backup get相同--label-columns、-o/--output、-l/--selector、--show-labels见 ark_schedule_get.mdark schedule delete NAME无专属参数用于停止并删除一个定时备份计划见 ark_schedule_delete.md。ark create 与 ark get两种命令语法的对应关系Ark 的 CLI 支持两种等价语法这在根命令 ark.md 中有明确说明动词式语法名词式语法说明ark backup create NAMEark create backup NAME创建备份参数完全一致ark_create_backup.mdark backup getark get backups列出备份ark_get_backups.mdark restore create BACKUPark create restore BACKUP创建恢复ark_create_restore.mdark restore getark get restores列出恢复ark_get_restores.mdark schedule create NAMEark create schedule NAME创建定时备份ark_create_schedule.mdark schedule getark get schedules列出定时备份ark_get_schedules.md两种语法的参数与行为完全一致团队中可以统一采用其中一种风格以保持脚本一致性。输出格式与标签显示ark的 get / create 系列命令统一支持以下与展示相关的参数-o, --output输出格式。get 命令默认tablecreate 命令搭配该参数时只显示对象而不发送到服务端适合预览将要提交的 Backup / Restore / Schedule 对象合法值为table、json、yaml--label-columns指定若干标签逗号分隔作为额外列展示在表格输出中--show-labels在表格最后一列显示对象的全部标签-l, --selector按标签选择器过滤展示get或过滤操作范围create。# 以 JSON 形式预览将要创建的备份对象 ark backup create preview-backup -o json # 列出备份并展示 app 标签列 ark backup get --label-columns app --show-labels从 ark 到 VeleroCLI 的演进与源码对照本文档对应的是 Ark 项目 v0.5.0 时期项目名仍为 Ark、镜像前缀为gcr.io/heptio-images/ark的命令行参考。在随后的演进中该项目更名为 Veleroark命令被velero取代镜像也随之迁移。在当前的仓库中CLI 的现代实现位于 pkg/cmd/cli约 90 个 Go 源文件命令入口为 cmd/velero/velero.goark backup create对应的过滤、快照、TTL 等参数语义在 pkg/cmd/cli/backup 等包中均有延续。对于仍在维护 Ark v0.5.0 环境、或希望理解 Velero CLI 设计渊源如--namespace-mappings、--include-cluster-resources、--snapshot-volumes、--ttl等核心参数的语义的读者site/content/docs/v0.5.0/cli-reference/目录下的这一组命令参考页是直接、权威的第一手资料配合当前仓库 pkg/cmd/cli 下的实现代码阅读可以清晰看到这些参数从命令行解析到控制器执行的完整链路。快速速查场景命令查看所有命令ark --help/ark help创建备份ark backup create NAME [flags]或ark create backup NAME [flags]查看备份ark backup get或ark get backups查看备份日志ark backup logs BACKUP下载备份归档ark backup download NAME [-o PATH] [--force]创建恢复ark restore create BACKUP [flags]或ark create restore BACKUP [flags]查看恢复ark restore get或ark get restores查看恢复日志ark restore logs RESTORE删除恢复ark restore delete NAME创建定时备份ark schedule create NAME --schedule CRON或ark create schedule NAME查看定时备份ark schedule get或ark get schedules删除定时备份ark schedule delete NAME运行服务端ark server [--log-level debug]查看版本ark version【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询