Velero restore 查询指南:从 `ark get restores` 到现代 `velero restore get` 的完整用法

发布时间:2026/9/17 1:48:51

Velero restore 查询指南:从 `ark get restores` 到现代 `velero restore get` 的完整用法 Velero restore 查询指南从ark get restores到现代velero restore get的完整用法【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero本指南以仓库中 v0.9.0 时代的命令行参考文档 ark_get_restores.md 为骨架系统讲解如何列出与查询 Velero原 Ark集群中的 restore 资源包括命令语法、全部可选参数、输出格式控制、标签筛选与列展示并延伸到当前源码中velero restore get的实现与表格列定义帮助你快速掌握查询恢复任务这一日常运维核心操作。背景从 Ark 到 Velero 的命令演进ark get restores是 Velero 项目早期名为 Heptio Ark在 v0.9.0 版本时期的 CLI 命令用于获取集群中的 restore恢复任务资源。该命令后来随项目更名演进为现代的velero restore get语义与参数基本保持一致。从源码结构看restore 子命令统一由 pkg/cmd/cli/restore/restore.go 中的NewCommand组装它注册了create、get、logs、describe、delete五个子命令其中NewGetCommand(f, get)即对应本文的查询命令c.AddCommand( NewCreateCommand(f, create), NewGetCommand(f, get), NewLogsCommand(f), NewDescribeCommand(f, describe), NewDeleteCommand(f, delete), )而在旧版 v0.9.0 中命令入口名为ark默认命名空间为heptio-ark今天则统一使用velero默认命名空间为velero。本文同时覆盖两种形态便于你对照历史文档与当前版本使用。命令语法与 Synopsisark get restores的完整语法为ark get restores [flags]列出集群中所有的 restore 资源也可以直接指定 restore 名称来查看特定任务现代velero restore get NAME形态。查看帮助ark get restores --help命令输出含义以默认的table格式执行后输出表格包含以下列列定义见源码 pkg/cmd/util/output/restore_printer.go列名含义Namerestore 名称Backup该 restore 基于的备份名称来自restore.Spec.BackupNameStatus恢复当前阶段PhaseStarted开始时间Status.StartTimestampCompleted完成时间Status.CompletionTimestampErrors恢复过程中的错误数Warnings恢复过程中的警告数Createdrestore 对象的创建时间Selector恢复时使用的标签选择器来自restore.Spec.LabelSelector状态列取值定义在 pkg/apis/velero/v1/restore_types.go 中的RestorePhase类型包括Newrestore 已创建但尚未开始处理FailedValidation校验失败未执行InProgress正在执行中WaitingForPluginOperations/WaitingForPluginOperationsPartiallyFailed等待插件异步操作可能部分失败Finalizing/FinalizingPartiallyFailed正在收尾可能部分失败Completed成功完成PartiallyFailed执行到结束但存在部分失败Failed执行失败。另外pkg/cmd/cli/restore/get.go 中还会检查每个 restore 的DeletionTimestamp若对象正在被删除会在 Phase 后追加(Deleting)标记方便你区分正在清理的任务。参数详解ark get restores支持以下选项Options参数简写默认值说明--help-h-显示 restores 命令帮助信息--label-columns-无逗号分隔的标签列表作为额外列显示见下节--output-otable输出格式可选table、json、yaml--selector-l无仅显示匹配该标签选择器的 restore--show-labels-false在最后一列显示 labels--selector按标签筛选 restore使用 Kubernetes 标签选择器语法如-l velero.io/backup-namemy-backup只列出匹配的 restore。在源码 pkg/cmd/cli/restore/get.go 中该值通过labels.Parse解析为labels.Selector再作为ListOptions.LabelSelector传给 controller-runtime 客户端执行列表查询parsedSelector, err : labels.Parse(listOptions.LabelSelector) cmd.CheckError(err) err kbClient.List(context.TODO(), restores, controllerclient.ListOptions{ LabelSelector: parsedSelector, Namespace: f.Namespace(), }) cmd.CheckError(err)--label-columns将标签展示为列接受逗号分隔的标签键列表为输出表格增加对应标签列。在 pkg/cmd/util/output/output.go 中该 flag 由flag.NewStringArray()定义支持重复使用多个 flag 组合如-L label1 -L label2标签名区分大小写实际打印时通过printers.NewTablePrinter的ColumnLabels选项生效。--show-labels在最后一列展示全部标签布尔开关开启后在表格最后一列以keyvalue,key2value2的形式显示该 restore 的全部标签。--output控制输出格式-o支持三种格式table默认人类可读的表格输出json以 JSON 输出 restore 对象yaml以 YAML 输出 restore 对象。源码 pkg/cmd/util/output/output.go 中的ValidateFlags/validateOutputFlag会在执行前校验取值仅允许table、json、yaml与空值其他值直接报错invalid output format ...PrintWithFormat则根据格式分发table走printTablejson/yaml走printEncoded通过encode.Encode序列化。注意table格式对install命令不可用但 restore 查询完全支持。特殊细节当使用json/yaml且列表恰好只包含一个元素时源码会提取该单个对象直接输出而非输出数组包裹的列表见printEncoded中meta.IsListType的处理逻辑。从父命令继承的全局参数ark get restores还会继承 Ark/Velero CLI 的全局参数Options inherited from parent commands用于控制 apiserver 连接与日志输出参数说明--alsologtostderr同时将日志写入标准错误与日志文件--kubeconfigkubeconfig 路径未设置时尝试环境变量KUBECONFIG再尝试集群内配置--kubecontext连接 apiserver 使用的 context默认使用当前 context同kubectl config current-context--log_backtrace_at日志命中file:N时输出堆栈追踪默认:0--log_dir非空时在该目录写日志文件--logtostderr日志写入标准错误而非文件-n, --namespaceArk/Velero 操作所在的命名空间v0.9.0 默认heptio-ark--stderrthreshold达到该级别severity及以上的日志进入 stderr默认 2-v, --vV 日志级别--vmodule按patternN逗号分隔列表对文件过滤日志其中--namespace值得特别关注查询 restore 时CLI 通过f.Namespace()决定从哪个命名空间读取对象见 pkg/cmd/cli/restore/get.go 中ObjectKey{Namespace: f.Namespace(), ...}与List时的Namespace字段。在 v0.9.0 中默认值为heptio-ark当前版本默认命名空间为velero如你的部署位于其他命名空间务必显式指定-n。结合源码看查询实现与测试velero restore get的完整执行流程pkg/cmd/cli/restore/get.go如下调用output.ValidateFlags校验--output等输出相关参数通过工厂f.KubebuilderClient()获取 controller-runtime 客户端若带名称参数如velero restore get NAME1 NAME2逐个用kbClient.Get按{Namespace, Name}获取并追加到列表中否则调用kbClient.List按命名空间与标签选择器列出全部 restore遍历结果若DeletionTimestamp非零则为 Phase 追加(Deleting)调用output.PrintWithFormat按-o指定格式输出。该命令还支持 shell 补全c.ValidArgsFunction cli.CompleteRestoreNames(f)可自动补全集群中已有的 restore 名称。配套测试 pkg/cmd/cli/restore/get_test.go 中的TestNewGetCommand验证了核心行为在 fake controller-runtime 客户端中预置b1、b2、b3三个带标签的 restore随后执行NewGetCommand(f, velero restore get)并传入三个名称参数断言命令成功执行且输出中能解析出全部三条记录——这印证了按名称获取多个 restore与表格输出两条主路径是可靠且经过测试的。关联命令日志与详情除了getrestore 相关的运维查询还常配合以下子命令使用velero restore describe NAME查看单个 restore 的详细状态源码见 pkg/cmd/cli/restore/describe.go支持--details展示更多细节输出格式支持plaintext与jsonvelero restore logs NAME查看某个 restore 执行过程的日志用于排查失败原因。实用示例汇总以下为常用查询场景v0.9.0 使用ark当前版本替换为velero# 列出当前命名空间所有 restore表格格式 ark get restores # 查看指定 restore ark get restores my-restore # 按标签筛选 ark get restores -l velero.io/backup-namemy-backup # 将标签作为额外列展示 ark get restores --label-columns velero.io/backup-name # 在最后一列展示全部标签 ark get restores --show-labels # 以 JSON / YAML 输出便于脚本或 GitOps 消费 ark get restores -o json ark get restores -o yaml # 指定命名空间v0.9.0 默认 heptio-ark当前默认 velero ark get restores -n velero小结ark get restores现代velero restore get是 Velero 灾备体系中查看恢复进度的核心命令它既能以可读表格快速浏览任务状态也能通过--selector、--label-columns、--show-labels精确筛选与定制列还能用-o json/yaml对接自动化流程。结合源码 pkg/cmd/cli/restore/get.go 与列定义 pkg/cmd/util/output/restore_printer.go你可以清楚理解每一步查询背后的客户端调用、标签解析与表格渲染逻辑从而在排障与日常巡检中更精准地使用该命令。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/17 1:48:51

SpringBoot 3.x 医院挂号系统实战:时段调度与状态机设计

简介:这是一套基于SpringBoot开发的医院挂号预约管理系统完整源码工程,面向计算机专业本科生及Java初学者,适用于课程设计、毕业设计与Web全栈实践项目。系统覆盖用户管理、医生科室展示、在线挂号、就诊提醒、病历查询、在线支付、医生评价及…

2026/9/17 1:43:50

SpringBoot+Vue3+MyBatis构建高并发选课系统

1. 项目背景与核心价值这个大学生选修选课系统采用了当前企业级开发中最主流的SpringBootVue3MyBatis技术栈,实现了前后端完全分离的架构设计。我在实际开发教育类管理系统时发现,传统的选课系统往往存在高峰期崩溃、选课冲突处理不完善、界面交互体验差…

2026/9/17 2:43:56

解压缩乱码真相:从编码原理到批量修复全攻略

压缩包一打开,满屏文件名全是“锟斤拷”“烫烫烫”,或者解压出来的Word、Excel打开全是方格子和问号——这应该是每个用电脑的人都碰到过的事。尤其是从网上下载的资料包、同事微信传过来的项目代码、客户发来的设计素材,什么场景都能遇到。今…

2026/9/17 2:43:56

Tabby:跨平台开源终端神器,告别Xshell配置迁移之苦

1. 先说说我为什么受够了Xshell和SecureCRT1.1 那些年攒下的连接配置我是一名做Linux服务器运维和嵌入式开发的工程师,从2016年开始,Xshell一直是我Windows机器上的标配。那时候觉得Xshell够用、简洁,一个窗口管所有服务器,连接记…

2026/9/17 2:43:56

Zigbee与STM32智能家居源码解析:从组网到低功耗实战

简介:基于ZigBee与STM32的智能家居系统完整源代码包,面向嵌入式、单片机及物联网方向的学习者与开发者,解决智能家居环境监控与终端控制的原型实现问题。上位机基于Qt编写,可实时监控室内温度、湿度、烟雾浓度,并通过L…

2026/9/17 2:43:56

Qt实现VisionPro风格Mask遮罩工具:从QGraphicsView到QImage的实践

简介:基于Qt开发的仿VisionPro图像遮罩工具,主要面向需要实现图像区域掩膜绘制、遮挡或标注功能的Qt开发者。工具支持遮罩起点与终点形状在矩形/圆形间自由切换,遮罩颜色可由用户自定义,线条粗细支持1~150像素范围调节&#xff0c…

2026/9/17 2:43:56

Node.js安装与环境配置全攻略:从报错排查到多版本管理

1. 为什么Node.js这么容易装出问题?这两年我帮人排查开发环境,遇到最多的不是代码报错,而是“我明明把Node.js装好了,为什么命令行里输node -v就是没反应?”或者“安装完Node.js,结果一执行npm命令就提示np…

2026/9/17 2:38:56

Django购物商城毕业设计源码:从ORM到事务的完整实战解析

简介:基于PythonDjango的购物商城管理系统,是一份面向计算机专业毕业设计、课程设计与期末大作业的完整项目资源。项目采用Django框架实现商城核心功能,包含用户、商品、购物车、订单等模块,源码经过本地编译调试可运行&#xff0…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/17 0:03:13

WiFi密码安全测试:从原理到实战的字典暴力破解指南

1. 写在前面:我为什么要研究WiFi密码这件事先交代一下背景。我身边有不少朋友,家里的WiFi密码常年是"12345678"或者"88888888",问就是"好记"。直到有一次,隔壁邻居蹭网蹭到我家路由器后台都进不去&…

2026/9/17 0:03:13

redis-py服务控制与监控函数实战:从ping到slowlog的巡检指南

我用 redis-py 写了快五年的业务代码,坦白说,真正让我觉得这个客户端“像一个成熟工具箱”的,不是 get/set 那套基本操作,而是它那批专门做服务控制与状态监控的辅助函数。日常开发里,大家把redis.Redis(host..., deco…

2026/9/17 0:03:13

SpringBoot+Vue3实现中小企业设备管理系统开发实践

1. 项目概述与核心价值中小企业设备管理系统是制造业、服务业等领域的基础信息化工具。传统设备管理往往依赖Excel表格或纸质记录,存在数据孤岛、流程混乱、维护成本高等痛点。这套基于Java SpringBootVue3MyBatis的技术方案,通过前后端分离架构实现了设…

2026/9/16 22:55:57

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/16 22:56:09

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/16 22:56:16

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码