尧图精选

Velero 历史版本 ark restore describe 命令详解:语法、参数与输出字段全解析

🕒 发布时间:2026/9/17 1:17:14 📁 来源:尧图网络
Velero 历史版本 ark restore describe 命令详解语法、参数与输出字段全解析【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero导读ark restore describe是 Velero早期版本名为 ark提供的恢复Restore状态查看命令用于以人类可读的格式描述一个或多个 Restore 对象的完整信息包括恢复阶段、进度、命名空间与资源过滤范围、卷恢复情况和错误告警。本文以仓库中的 ark_restore_describe.md 官方 CLI 参考文档为主体结合当前仓库源码中velero restore describe的实现系统讲解命令语法、全部参数含义、输出字段的底层来源以及与现代版本的差异帮助读者准确解读一次恢复任务的状态。命令概述从 ark 到 velero 的命令演进该文档隶属于site/content/docs/v0.6.0/cli-reference/目录对应 Velero v0.6.0 时代的 CLI 参考手册。当时命令行工具名为ark文档标题为 ark restore describe其语义是Describe restores描述恢复任务。在同一目录下还保留了ark_restore.md恢复命令组、ark_restore_create.md、ark_restore_delete.md、ark_restore_get.md、ark_restore_logs.md等配套命令文档以及ark.md总入口文档。需要说明的是在后续版本中项目更名为 VeleroCLI 命令从ark迁移为velero对应的子命令结构基本保持一致。因此本文讲解的ark restore describe在当代版本中即velero restore describe二者在语法与语义上具有直接继承关系。当前仓库中该命令的实现位于 describe.go其命令描述仍为 Describe restores与历史文档完全一致。命令语法与核心用法根据文档的 Synopsis 部分命令的完整语法为ark restore describe [NAME1] [NAME2] [NAME...] [flags]指定一个或多个恢复名称命令接受一个或多个 Restore 名称作为位置参数。从当前仓库源码 describe.go 的实现可以看到其内部逻辑当传入名称参数时对每个名称分别执行kbClient.Get()获取对应的 Restore 对象并追加到列表中依次描述当不传名称时通过kbClient.List()列出当前命名空间由--namespace相关配置决定源码中取f.Namespace()下全部Restore 对象并逐一描述多对象输出时除第一个对象外其余对象前会以空行分隔见 describe.go。典型用法示例# 描述单个恢复任务 ark restore describe my-restore # 一次描述多个恢复任务 ark restore describe restore-a restore-b restore-c # 不指定名称列出当前命名空间下所有恢复任务 ark restore describe当前源码中还通过c.ValidArgsFunction cli.CompleteRestoreNames(f)为命令注册了 Restore 名称的自动补全shell 补全支持这在交互式终端中非常实用。命令选项详解文档列出的专属于该命令的选项有两个-h, --help help for describe -l, --selector string only show items matching this label selector-l, --selector string标签选择器参数用于只显示匹配指定标签选择器的 Restore 对象。该选项仅在未指定名称参数即列表模式时生效。从源码实现看其类型为metav1.ListOptions.LabelSelector最终通过labels.Parse()解析并传入kbClient.List()见 describe.go是标准的 Kubernetes 标签选择器语法。示例# 查看带 appnginx 标签的所有恢复任务 ark restore describe --selector appnginx # 组合标签选择 ark restore describe -l app in (nginx,redis),envprod-h, --help显示命令帮助信息。从父命令继承的全局参数该命令继承自父命令ark的全局参数如下文档 Options inherited from parent commands 一节参数说明--alsologtostderr同时将日志输出到标准错误和日志文件--kubeconfig string指定连接 Kubernetes apiserver 的 kubeconfig 文件路径若未设置则依次尝试环境变量KUBECONFIG与集群内配置in-cluster configuration--log_backtrace_at traceLocation当日志命中file:N位置时输出堆栈追踪默认:0--log_dir string若非空将日志文件写入该目录--logtostderr将日志输出到标准错误而不是文件--stderrthreshold severity达到或超过该级别的日志输出到标准错误默认 2即 ERROR-v, --v LevelV 级别日志的日志级别--vmodule moduleSpec逗号分隔的patternN设置列表用于按文件过滤的日志级别其中--kubeconfig是实际使用中最关键的参数。它决定命令行工具连接哪个 Kubernetes 集群来读取 Restore 对象对于使用本地 kubeconfig 的开发环境通常无需显式指定工具会读取默认 kubeconfig 或KUBECONFIG环境变量。输出的字段含义与底层数据来源ark restore describe的核心价值在于将 Restore 对象的Spec期望状态与Status实际状态翻译成易读的文本。当前仓库中负责该输出的核心函数是 DescribeRestore位于pkg/cmd/util/output/restore_describer.go。下面逐字段说明其数据来源与含义。元信息与阶段Phase输出首先展示 Restore 的元数据名称、命名空间、标签等随后是Phase字段。阶段来源于restore.Status.Phase若为空则默认为New。源码中RestorePhase的全部枚举定义在 restore_types.goNewRestore 已创建但尚未被 RestoreController 处理FailedValidation未通过控制器的校验不会执行InProgress正在执行WaitingForPluginOperations资源恢复成功异步插件操作仍在进行WaitingForPluginOperationsPartiallyFailed部分失败其余插件操作仍在进行Finalizing等待收尾任务完成后进入终态FinalizingPartiallyFailed收尾前已发生一个或多个错误Completed无错误成功完成PartiallyFailed运行完成但存在 1 个以上单项错误Failed无法执行失败原因记录在status.failureReason。值得注意的输出细节restore_describer.goCompleted阶段以绿色显示FailedValidation、PartiallyFailed、Failed阶段以红色显示若对象带有删除时间戳DeletionTimestamp阶段后追加(Deleting)当阶段为Failed或PartiallyFailed时输出末尾附加提示(run velero restore logs name for more information)引导用户通过日志命令进一步排查。进度Progress进度字段来源于restore.Status.ProgressTotalItems与ItemsRestored见 restore_types.go。输出的措辞取决于阶段阶段为InProgress时输出Estimated total items to be restored与Items restored so far估计值因为插件可能动态追加需要恢复的关联资源其他阶段输出Total items to be restored与Items restored最终确定值。时间戳、校验错误与结果Started / Completed取自restore.Status.StartTimestamp与restore.Status.CompletionTimestamp未设置时显示n/a其中 StartTimestamp 为空通常意味着 Restore 在FailedValidation阶段即被拒绝见 restore_describer.goValidation errors当restore.Status.ValidationErrors非空时逐条以红色列出Warnings / Errors当restore.Status.Warnings或restore.Status.Errors大于 0 时命令会通过DownloadRequest机制从对象存储BackupStorageLocation下载restore-results文件并解析按Velero、Cluster、Namespaces三级维度展示具体的告警与错误明细见 restore_describer.go。这是 describe 命令最有价值的排障信息之一。Spec 字段的输出输出中还完整回显 Restore 的规格配置均来自RestoreSpec定义于 restore_types.goBackupspec.backupName本次恢复的数据来源备份NamespacesincludedNamespaces/excludedNamespacesincluded 为空或仅含*时显示为 all namespaces found in the backupResourcesincludedResources/excludedResourcesincluded 为空时显示*全部资源Cluster-scopedincludeClusterResources空指针显示auto布尔值显示included/excludedNamespace mappingsspec.namespaceMapping源命名空间到目标命名空间的映射Label selector与Or label selectorspec.labelSelector与spec.orLabelSelectors多个选择器以or连接两者不可同时使用Restore PVsspec.restorePVs是否从快照恢复 PV空指针显示autoExisting Resource Policy / Existing Volume Data Policyspec.existingResourcePolicynone/update与spec.existingVolumeDataPolicynone/full/incremental枚举定义见 restore_types.goItemOperationTimeout等待 RestoreItemAction 异步操作的最长时间默认 4 小时Preserve Service NodePortsspec.preserveNodePortsResource modifier / Resource policyspec.resourceModifier与spec.resourcePolicy引用的 ConfigMap 信息Skip Default Resource Modifier为 true 时跳过服务端默认资源修改器Uploader configwriteSparseFiles、parallelFilesDownload等上传器配置。PodVolumeRestores卷恢复明细describe 命令会额外查询与该 Restore 关联的全部PodVolumeRestore对象通过velero.io/restore-name标签过滤见 describe.go并输出各卷恢复任务的阶段统计。默认只输出各阶段Completed / Canceled / Failed / In Progress / Prepared / Accepted / New的计数添加--details标志后会进一步按 Podnamespace/pod列出其下恢复的卷名列表见 restore_describer.go。其他输出区块CSI Snapshot Restores从对象存储下载restore-volume-info文件展示通过 CSI 快照恢复的 PVC 及其快照内容名称、存储快照 ID、CSI 驱动等信息对数据移动Data Movement场景还展示 Operation ID、Data Mover、Uploader Type、恢复类型与数据大小见 restore_describer.goRestore Item Operations当status.restoreItemOperationsAttempted 0时输出异步 RestoreItemAction 操作的成功/失败统计--details下逐条展示插件、操作 ID、阶段、进度与错误信息HookshooksAttempted/hooksFailed统计Resource List仅--details下载restore-resource-list文件按 GVK 分组列出本次实际恢复的所有资源。现代版本的增强当前仓库中的扩展参数历史 v0.6.0 文档仅记录了--help与--selector两个选项在当前仓库的 describe.go 中命令已扩展出以下参数作为对历史文档的补充说明参数说明--details展示额外细节卷按 Pod 分组明细、CSI 快照详情、操作级进度、资源清单等--insecure-skip-tls-verify校验对象存储 TLS 证书时跳过有效性检查不安全不推荐用于生产环境--cacert string校验 TLS 连接时使用的 CA 证书包路径默认从客户端配置文件读取-o, --output string输出格式可选plaintext默认与jsonjson结构化输出仅适用于单个 Restore多对象场景下为避免内存溢出仍逐条以文本输出其中--output json对应结构化描述器实现 restore_structured_describer.go将阶段、进度、时间戳、spec、PodVolumeRestores、CSI 快照、Item Operations、Hook 状态、资源清单等组织为嵌套 JSON便于脚本化消费与自动化巡检。与相关命令的配合使用ark restore describe属于恢复命令组文档 SEE ALSO 指向ark restore。同一命令组中见 ark_restore.md还包括ark restore create从备份创建恢复ark restore delete删除恢复ark restore get获取恢复列表ark restore logs获取恢复日志describe 在 Failed/PartiallyFailed 时也会提示使用该命令深入排查。推荐的排障流程是先用ark restore get找到目标恢复再用ark restore describe name查看阶段、校验错误与告警/错误明细最后用ark restore logs name获取执行日志定位根因。小结ark restore describe是将 Kubernetes 集群中 Restore 对象的声明式状态翻译为可读诊断信息的核心命令。其输出完整覆盖了恢复阶段、进度、时间戳、校验错误、对象存储中的告警/错误明细、命名空间与资源过滤范围、卷恢复状态以及异步操作进度等关键信息。对于从事 Kubernetes 备份恢复平台运维、或需要集成 Velero 恢复状态到自动化系统的开发者而言理解该命令的输出字段与数据来源Restore CRD 的Spec/Status定义见 restore_types.go是准确判断恢复健康状况和快速定位失败原因的基础。在现代版本中命令更名为velero restore describe并增加了--details、--cacert、--output json等增强能力其核心语义与 v0.6.0 文档一脉相承。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →