Velero Schedule Describe 命令详解:查看定时备份计划的状态与配置

发布时间:2026/9/17 16:38:24
Velero Schedule Describe 命令详解:查看定时备份计划的状态与配置 Velero Schedule Describe 命令详解查看定时备份计划的状态与配置【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero导读velero schedule describe历史版本中为ark schedule describe是 Velero/Ark 命令行工具中用于查看定时备份计划Schedule详细信息的核心只读命令。它可以按名称或标签选择器检索一个或多个 Schedule并以人类可读的格式化文本输出其阶段Phase、暂停状态、Cron 调度表达式、完整的备份模板配置以及最近一次备份时间。读完本文你将掌握该命令的完整语法、全部参数语义、输出字段的底层来源以及它如何与 Kubernetes API 交互的实现原理。一、命令概览与历史背景在 Velero 项目早期v0.8.1 及以前项目名为Ark命令行入口为ark默认命名空间为heptio-ark。因此本命令在当时的参考文档中写作ark schedule describe [NAME1] [NAME2] [NAME...] [flags]此后项目更名为 Velero命令入口变为velero默认命名空间变为velero命令对应为velero schedule describe [NAME1] [NAME2] [NAME...] [flags]在当今源码中该命令位于 pkg/cmd/cli/schedule/describe.go通过 pkg/cmd/cli/schedule/schedule.go 中的NewCommand注册为schedule子命令组create / get / describe / delete / pause / unpause之一。命令用途描述查看一个或多个 Schedule 的详细信息。Schedule 是 Velero 用于按 Cron 表达式周期性触发 Backup 的自定义资源CRD因此describe输出的不仅是调度配置本身还内嵌了整个备份模板Backup Template。二、语法与命令行参数2.1 语法ark schedule describe [NAME1] [NAME2] [NAME...] [flags]参数位置可以出现一个或多个 Schedule 名称。若不指定任何名称则列出当前命名空间下所有或匹配标签选择器的Schedule 并逐一描述若指定一个或多个名称则只描述这些指定名称的 Schedule。2.2 专属选项Options选项类型说明-h, --helpbool显示describe命令的帮助信息-l, --selector stringstring仅显示匹配该标签选择器label selector的 Schedule标签选择器使用 Kubernetes 标准标签选择器语法例如-l velero.io/schedule-namemy-backup或-l environmentprod。该参数仅在未指定 Schedule 名称、走“列表 过滤”路径时生效见下文源码解析。三、继承自父命令的全局选项Options inherited from parent commands这些参数继承自arkvelero根命令适用于所有子命令describe同样支持选项类型/默认值说明--alsologtostderrbool同时将日志写入标准错误stderr和文件--kubeconfig stringstring用于连接 Kubernetes apiserver 的 kubeconfig 文件路径若未设置则尝试环境变量KUBECONFIG以及集群内in-cluster配置--kubecontext stringstring指定要使用的 kubeconfig context未设置时使用当前 contextkubectl config current-context--log_backtrace_at traceLocationstring默认:0当日志命中file:N时输出堆栈跟踪--log_dir stringstring非空时将日志文件写入该目录--logtostderrbool将日志写入标准错误而非文件-n, --namespace stringstringv0.8.1 默认heptio-arkArk/Velero 运行的目标命名空间即从哪个命名空间读取 Schedule--stderrthreshold severitystring默认2达到或超过该严重级别的日志输出到标准错误-v, --v LevelintV 日志的日志级别--vmodule moduleSpecstring逗号分隔的patternN列表用于按文件过滤日志级别注意历史差异v0.8.1 参考文档中的默认命名空间为heptio-ark当前仓库中默认命名空间为velero实际使用时请以你的安装版本为准。四、源码实现解析命令如何工作当前版本的NewDescribeCommand实现位于 pkg/cmd/cli/schedule/describe.go其核心逻辑分三步创建客户端通过f.KubebuilderClient()获取 controller-runtime 客户端sigs.k8s.io/controller-runtime用于访问 Velero 自定义资源。数据获取两条路径按名称获取当命令行传入args名称列表时逐个调用crClient.Get以{Namespace: f.Namespace(), Name: name}为对象键读取v1.Schedule追加到结果列表列表 标签过滤当未传名称时构造labels.NewSelector()若-l/--selector非空则用labels.Parse解析为用户提供的标签选择器随后调用crClient.List在f.Namespace()内按该选择器列出全部 Schedule。格式化输出遍历结果列表对每个 Schedule 调用output.DescribeSchedule生成描述文本首个结果直接打印后续结果之间以空行分隔。此外还注册了c.ValidArgsFunction cli.CompleteScheduleNames(f)为 shell 提供 Schedule 名称的自动补全能力。值得注意的是describe 永远只在f.Namespace()指定的命名空间内操作。这一点被测试用例 pkg/cmd/cli/schedule/describe_test.go 显式验证测试构造了ours位于 Velero 命名空间与theirs位于另一个命名空间another-velero两个 Schedule执行 describe 后断言输出包含ours而不包含theirs。五、输出内容解析describe 展示哪些字段输出文本由 pkg/cmd/util/output/schedule_describer.go 中的DescribeSchedule生成字段依次为MetadataSchedule 的名称、命名空间、标签、注解等对象元数据。Phase阶段取自Status.Phase为空时显示为New。为增强可读性Enabled阶段以绿色显示FailedValidation以红色显示。Resource policies若备份模板配置了资源策略Spec.Template.ResourcePolicy非空则展示全局卷策略等资源策略详情。Uploader config若配置了UploaderConfig.ParallelFilesUpload 0则显示并行文件上传数。Validation errors校验错误当Status.ValidationErrors非空时逐条以红色列出帮助定位 Schedule 配置失败原因。Paused暂停显示Spec.Paused的布尔值标识该 Schedule 是否被暂停。Schedule调度表达式Spec.Schedule即 Cron 表达式本身例如0 1 * * *。Backup Template备份模板通过DescribeBackupSpec见 pkg/cmd/util/output/backup_describer.go内联输出每次触发时所创建 Backup 的完整规格包括包含/排除的命名空间Included/Excluded Namespaces空值显示*包含/排除的资源Included/Excluded Resources及集群级资源处理方式标签选择器Label selector与或标签选择器Or label selector存储位置Storage Location卷快照相关设置Velero-Native Snapshot PVs、File System Backup、Snapshot Move Data、Data MoverTTL备份保留时长Last Backup最近一次备份取自Status.LastBackup若从未触发过备份或时间为零值则显示never。基于上述字段一个典型的输出结构示意如下具体值取决于你的实际 Schedule 配置Name: my-schedule Namespace: velero Labels: none Annotations: none Phase: Enabled Paused: false Schedule: 0 1 * * * Backup Template: Namespaces: Included: * Excluded: none Resources: Included: * Excluded: none Cluster-scoped: auto Label selector: none Storage Location: default Velero-Native Snapshot PVs: auto TTL: 720h0m0s Last Backup: 2026-09-15 01:00:00 0000 UTC六、实战示例以下示例在 v0.8.1 环境使用ark命令当前版本请将ark替换为velero。查看单个 Scheduleark schedule describe my-schedule同时查看多个 Scheduleark schedule describe daily-backup weekly-backup按标签选择器查看一组 Scheduleark schedule describe -l environmentprod查看其他命名空间中的 Schedule结合继承的全局参数ark schedule describe my-schedule -n my-velero-namespace指定 kubeconfig 与 contextark schedule describe my-schedule \ --kubeconfig /path/to/kubeconfig \ --kubecontext my-context七、相关命令describe属于schedule命令组详见 pkg/cmd/cli/schedule/schedule.go该命令组围绕定时备份计划提供完整的管理能力命令用途ark schedule create创建新的定时备份计划ark schedule get以表格形式列出 Schedule 的概要信息ark schedule describe查看 Schedule 的详细配置与状态本文主题ark schedule delete删除 Scheduleark schedule pause暂停 Schedule停止触发新备份ark schedule unpause恢复被暂停的 Schedule在 v0.8.1 参考文档中本命令的 SEE ALSO 章节指向ark schedule命令总览原文档见 site/content/docs/v0.8.1/cli-reference/ark_schedule_describe.md。八、小结velero schedule describe是一个零副作用的只读诊断命令其价值在于把分散在 Schedule 自定义资源中的调度配置、备份模板与运行状态一次性以人类可读格式呈现。理解它的两条数据获取路径按名称 vs 按标签选择器、全局参数尤其是--namespace与 kubeconfig 相关参数以及输出字段与 pkg/cmd/util/output/schedule_describer.go 的对应关系能帮助你更高效地排查定时备份未按预期触发、校验失败等常见问题。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

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

尧图内容编辑团队

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

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

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

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

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

网站改版的5个关键决策

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

获取专属建站方案

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

立即免费咨询