资讯详情

Velero/Ark 定时备份查看指南:ark describe schedules 命令全面解析

📅 2026/9/16 21:43:02 | 华诺云谱 👁 阅读
Velero/Ark 定时备份查看指南:ark describe schedules 命令全面解析
Velero/Ark 定时备份查看指南ark describe schedules 命令全面解析【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero导读ark describe schedules是 ArkVelero 的前身CLI 中用于查看**定时备份Schedule**详细信息的核心命令。它继承自ark describe资源描述体系与ark schedule describe互为同义写法可单条或批量展示 Schedule 的 Cron 表达式、备份模板、运行状态与最近一次备份时间。本文以 v0.6.0 版本 CLI 参考文档为主体结合当前仓库源码逐层拆解该命令的语法、选项、输出字段与底层实现帮助你快速定位定时备份配置问题、掌握 Ark/Velero 调度资源的状态解读方法。命令定位Ark 时代的定时备份查看入口在 ArkVelero 前身v0.6.0 时代 CLI 名为ark中Schedule 是用于按 Cron 表达式周期性触发 Backup的顶层资源。该命令属于 ark describe 子命令体系其作用是从 Kubernetes API 中读取一个或多个 Schedule 对象并以人类可读的describe风格输出其规格与状态。值得注意的一点是Ark 提供两套平行的命令组织方式ark describe schedules按资源分组与ark schedule describe按动作分组在功能上完全等价——这一设计在 ark.md 的 Synopsis 中有明确说明If youre familiar with kubectl, Ark supports a similar model, allowing you to execute commands such as ark get backup and ark create schedule. The same operations can also be performed as ark backup get and ark schedule create。 对应文档见 ark schedule describe。版本说明本文解析的关联文档属于 v0.6.0 历史文档命令名为ark在当前仓库中该命令已演变为velero schedule describe/velero describe schedules其核心逻辑保持一致下文将以当前仓库源码佐证实现细节。命令语法Synopsis根据文档命令的完整用法如下ark describe schedules [NAME1] [NAME2] [NAME...] [flags]语法要点不带任何 NAME 参数列出并描述当前命名空间下的全部Schedule带一个或多个 NAME 参数仅描述指定的一个或多个 Schedule例如ark describe schedules nightly-backup weekly-backup[flags]用于控制输出范围与连接的全局选项详见下文。该用法与当前仓库源码 pkg/cmd/cli/schedule/describe.go 中的定义完全一致Use: use [NAME1] [NAME2] [NAME...]其中use在velero schedule describe场景下为schedule describe在velero describe schedules场景下为describe schedules。选项详解Options文档中该命令自身的选项有两个选项类型说明-h, --helpbool显示schedules子命令的帮助信息-l, --selector stringstring仅显示匹配该标签选择器label selector的条目--selector 的作用机制-l/--selector是命令的核心筛选选项。从源码 describe.go 可以看到其内部工作流程若未指定 selector则使用空标签选择器labels.NewSelector()等价于匹配所有 Schedule若指定了 selector如-l appbackup或-l env in (prod, staging)则调用labels.Parse解析为用户传入的标签表达式最终通过 controller-runtime 客户端执行crClient.List并将该 selector 传入ListOptions由 Kubernetes API 完成过滤。因此该选项遵循 Kubernetes 标准的标签选择器语法keyvalue、key!value、key in (v1,v2)、key notin (v1,v2)等与kubectl get -l的语义一致。名称参数与 selector 的互斥逻辑从源码 describe.go 可以看出两条读取路径互斥指定了 NAME 参数逐个crClient.Get按名称读取 Schedule此时 selector 不参与过滤未指定 NAME 参数执行crClient.List按 selector 批量列出。此外该命令注册了ValidArgsFunction cli.CompleteScheduleNames(f)见 describe.go即支持通过 TAB 键自动补全当前命名空间中已有的 Schedule 名称与kubectl describe的交互体验保持一致。继承自父命令的全局选项与 Ark/Velero 所有子命令一样ark describe schedules还继承了一系列连接与日志相关的全局选项来自父命令 ark.md选项默认值说明--alsologtostderr—同时将日志输出到标准错误与日志文件--kubeconfig string未设置用于访问 Kubernetes apiserver 的 kubeconfig 文件路径未设置时依次尝试环境变量KUBECONFIG与集群内配置in-cluster configuration--log_backtrace_at traceLocation:0当日志命中file:N时在该位置输出堆栈跟踪--log_dir string空若指定将日志文件写入该目录--logtostderr—将日志输出到标准错误而非日志文件--stderrthreshold severity2达到或超过该级别的日志输出到标准错误-v, --v Level—设置 V 级别日志的详细程度--vmodule moduleSpec—以逗号分隔的patternN列表按文件模式过滤日志级别其中--kubeconfig是日常排障最常用的选项当 CLI 不在集群内运行时通常需要显式指定 kubeconfig 路径命令执行所需的命名空间由客户端工厂从 kubeconfig 的当前 context 解析得到源码中通过f.Namespace()获取见 describe.go。输出字段详解describe 结果怎么看ark describe schedules的核心价值在于其格式化输出。以当前仓库输出实现 pkg/cmd/util/output/schedule_describer.go 为参照一次 describe 的输出由以下几部分构成1. 元数据Metadata包含 Schedule 对象的名称、命名空间、创建时间与标签Label/注解Annotation由DescribeMetadata统一渲染。2. 生命周期阶段PhasePhase: EnabledPhase 字段反映调度器的校验与启用状态取值定义于 pkg/apis/velero/v1/schedule_types.goPhase含义输出颜色NewSchedule 已创建但尚未被 ScheduleController 处理默认色EnabledSchedule 已通过校验将按规格触发备份绿色FailedValidationSchedule 未通过控制器校验不会触发备份红色若 Phase 为空字符串输出实现会自动兜底为New见 schedule_describer.go。3. 暂停状态与校验错误Paused: falsePaused: true表示该定时备份已暂停触发当状态中存在校验错误时输出还会追加Validation errors: 错误详情1 错误详情2这些错误通常源于 Cron 表达式非法或备份模板配置不合法是FailedValidation阶段的直接诊断依据见 schedule_describer.go。4. 调度规格Schedule SpecSchedule: 0 2 * * * Backup Template: ...Schedule触发备份的 Cron 表达式Backup Template缩进展示的备份模板BackupSpec即每次触发时将要创建的 Backup 的完整定义包括包含/排除的命名空间与资源、卷快照开关、TTL 等。5. 最近备份时间Last BackupLast Backup: 2026-09-15 14:00:00 0000 UTC对应ScheduleStatus.LastBackup若从未触发过备份则显示never见 schedule_describer.go。底层数据模型Schedule 资源的 spec 与 status要准确理解 describe 输出需要了解 Schedule 的 API 结构。核心定义位于 pkg/apis/velero/v1/schedule_types.go 与 schedule_types.goScheduleSpec规格字段说明template每次触发时创建的 Backup 定义BackupSpec必填scheduleCron 表达式定义何时运行 Backup必填useOwnerReferencesInBackup是否在由此 Schedule 创建的 Backup 上设置 OwnerReferences可选paused是否暂停该调度可选describe 输出中的Paused即取自该字段skipImmediately取消暂停或新建时若立即到期是否跳过本次备份可选为空时遵循服务端配置默认 falseScheduleStatus状态字段说明phase生命周期阶段New/Enabled/FailedValidationlastBackup最近一次触发 Backup 的时间lastSkipped最近一次被跳过的调度时间validationErrors校验错误列表若适用此外Schedule 还通过kubebuilder:printcolumn定义了kubectl get的打印列Status、Schedule、LastBackup、Age、PausedshortName 为sched这使得kubectl get schedules与ark get schedules的表格输出字段与 describe 输出一一对应见 schedule_types.go。实战从创建到 describe 的完整排障链路配合 ark schedule create可以将describe schedules嵌入定时备份的日常运维1. 创建定时备份ark schedule create daily-backup \ --schedule 0 2 * * * \ --include-namespaces default \ --snapshot-volumes true \ --ttl 720h0m0screate支持丰富的模板参数--include-namespaces默认*、--exclude-namespaces、--include-resources、--exclude-resources、--include-cluster-resources默认 true、--selector、--labels、--snapshot-volumes默认 true以及--ttl默认720h0m0s等。2. 按名称查看单个调度ark describe schedules daily-backup3. 按标签批量查看ark describe schedules -l app in (frontend, backend)4. 典型问题定位输出为Phase: FailedValidation 红色Validation errors说明创建时的 Cron 表达式或模板参数未通过校验需按错误提示修正后重建或修改 ScheduleLast Backup: never且 Phase 为 Enabled说明调度已启用但尚未到首个触发时间点可核对 Cron 表达式注意 Cron 时区语义并检查 ScheduleController 日志Paused: true说明调度被暂停不会再触发备份可通过 Schedule 的spec.paused字段调整。相关命令与延伸阅读ark describe schedules归属于ark describe资源描述家族同族的命令文档还包括ark describedescribe 资源总入口说明可描述 backups、restores、schedules 三类资源ark describe backups描述备份ark describe restores描述恢复ark schedule定时备份资源的管理入口包含 create / delete / describe / get 四个子命令ark schedule describeark describe schedules的动作优先等价写法。深入源码层面可进一步阅读 pkg/cmd/cli/schedule/describe.go 了解命令实现pkg/cmd/util/output/schedule_describer.go 了解输出渲染逻辑以及 pkg/apis/velero/v1/schedule_types.go 掌握 Schedule 资源的完整 API 定义。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。