ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Velero(Ark)备份描述命令完全指南:`ark describe backups` 从用法到源码解析

Velero(Ark)备份描述命令完全指南:`ark describe backups` 从用法到源码解析 VeleroArk备份描述命令完全指南ark describe backups从用法到源码解析【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero导读ark describe backups是 Velero 项目v0.9.0 时代名为 Ark中用于查看备份Backup资源详细信息的核心 CLI 命令它把存储在后端对象存储与 Kubernetes API Server 中的备份状态、配置、快照与错误信息汇总为人类可读的文本输出。本文以 v0.9.0 文档 ark_describe_backups.md 为主体结合当前仓库源码pkg/cmd/cli/backup/describe.go、pkg/cmd/util/output/backup_describer.go逐一拆解命令语法、全部参数、输出字段语义及底层实现帮助你快速定位备份失败原因、排查卷备份问题。命令概览做什么输出什么ark describe backups用于展示一个或多个 Backup 资源的详细信息。与只输出名称、阶段等摘要信息的ark backup get不同describe 的输出是多行分节式的详情视图通常包含备份元数据名称、命名空间、创建时间等当前**阶段Phase**及附加提示如失败时提示运行ark backup logs命名空间 / 资源包含与排除规则、集群级资源策略、标签选择器存储位置Storage Location、TTL、快照相关配置备份进度已备份条目数 / 总条目数校验错误Validation Errors、备份期间的 Errors / Warnings卷备份详情原生快照、CSI 快照、Pod 卷备份相关的删除请求DeleteBackupRequests记录。该命令是日常备份巡检、故障排查、验收备份结果时最常用的工具之一。命令语法根据原文档 ark_describe_backups.md 的 Synopsis 节命令语法为ark describe backups [NAME1] [NAME2] [NAME...] [flags]可以一次传入一个或多个备份名称命令会按传入顺序逐个输出每个备份的详情也可以不传名称此时命令会列出当前命名空间下所有备份并逐一描述可通过-l标签选择器过滤。从当前源码 pkg/cmd/cli/backup/describe.go 可以看到这条命令的实际执行逻辑当传入名称时逐个通过 controller-runtime 客户端kbClient.Get拉取对应 Backup 对象未传名称时则用kbClient.List一次性列出全部 Backup再对列表中的每一项分别调用描述器生成输出。选项详解原文档列出的核心选项如下源码对应 pkg/cmd/cli/backup/describe.go选项简写类型默认值说明--help-h--显示 backups 子命令的帮助信息--selector-lstring空仅展示匹配该标签选择器的条目Label Selector语法与kubectl一致如-l appnginx,env!prod--volume-details-boolfalse展示 resticPod 卷备份的详细卷信息关于--volume-details当未指定时输出中 Pod 卷备份部分通常只按阶段聚合显示数量指定该标志后会按命名空间/Pod 名逐卷列出备份结果与进度。当前仓库实现对应describePodVolumeBackupsInSF中的details分支逻辑见 pkg/cmd/util/output/backup_structured_describer.go。注v0.9.0 属于 Ark 时代上述标志即原文档的全部专属选项在后续 Velero 版本中该命令velero backup describe又增加了--details、--insecure-skip-tls-verify、--cacert、-o/--output支持plaintext与json结构化输出等选项详见下文源码视角一节。继承自父命令的全局选项ark describe backups还继承自ark根命令以下全局参数原文档 Options inherited from parent commands 节它们控制客户端连接与日志行为选项默认值说明--alsologtostderrfalse同时将日志写入标准错误与日志文件--kubeconfig空kubeconfig 文件路径未设置时依次尝试KUBECONFIG环境变量与集群内配置--kubecontext当前上下文指定用于连接 Kubernetes apiserver 的 kube context--log_backtrace_at:0当日志命中file:N时输出堆栈跟踪--log_dir空指定日志文件输出目录--logtostderrfalse日志输出到标准错误而非文件-n, --namespaceheptio-arkArk 运行的命名空间即 Backup 等 CRD 资源所在命名空间--stderrthreshold2达到或超过该级别的日志写入 stderr-v, --v0V 级别日志的日志级别--vmodule空按patternN逗号分隔列表对指定文件做日志过滤其中-n/--namespace是日常使用最频繁的参数当你把 Ark/Velero 安装在非默认命名空间时必须用-n指对位置否则命令会因找不到 Backup 资源而报错。当前源码中命名空间同样作用于查询 DeleteBackupRequests 与 PodVolumeBackups 的List调用pkg/cmd/cli/backup/describe.go。典型使用示例在默认命名空间heptio-ark下查看单个备份ark describe backups daily-backup-20230601同时查看多个备份ark describe backups daily-backup-20230601 daily-backup-20230602查看全部备份并过滤标签ark describe backups -l velero.io/schedule-namedaily查看备份中 restic 卷的详细备份情况含各 Pod 卷的进度与结果ark describe backups daily-backup-20230601 --volume-details若 Ark 安装在自定义命名空间veleroark describe backups daily-backup-20230601 -n velero命令在输出多个备份时会用空行分隔对于状态为Failed或PartiallyFailed的备份Phase 行会以红色显示并追加提示(runark backup logsfor more information)引导你进一步用日志定位失败原因——该逻辑定义于 pkg/cmd/util/output/backup_describer.go。读懂输出各分节语义以当前仓库实现为准describe输出按以下分节组织见 pkg/cmd/util/output/backup_describer.go 的调用顺序元数据与 Phase备份名称、命名空间、UID、创建时间以及阶段。阶段枚举定义于 pkg/apis/velero/v1/backup_types.go包括New、Queued、ReadyToStart、FailedValidation、InProgress、WaitingForPluginOperations、Finalizing、Completed、PartiallyFailed、Failed、Deleting等。校验错误当Status.ValidationErrors非空时逐条以红色列出说明备份参数未通过校验如引用了不存在的存储位置。Errors / Warnings从对象存储下载 backup-results 文件并展开按 velero / cluster / namespace 三个维度归类错误与警告pkg/cmd/util/output/backup_structured_describer.go。Spec 配置Included/Excluded Namespaces、Included/Excluded Resources、集群级资源策略、标签选择器、存储位置、TTL、快照配置、Hookspre/post exec hook 及其命令、超时、出错策略、有序资源OrderedResources等。Status 状态FormatVersion、开始/完成时间、过期时间默认 30 天 TTL、进度TotalItems/ItemsBackedUp进行中显示estimatedTotalItemsToBeBackedUp以及卷信息、Hook 尝试/失败次数。卷详情分为原生快照含snapshotID、卷类型、可用区、IOPS、CSI 快照snapshotContentName、存储侧 snapshotID、大小、驱动、Pod 卷备份restic按 Completed/Failed/Canceled/In Progress 等阶段分组--volume-details下再按 Pod 展开。删除请求若存在 DeleteBackupRequest列出每次删除尝试的创建时间、阶段与错误pkg/cmd/util/output/backup_structured_describer.go。源码视角命令的完整调用链虽然 v0.9.0 文档面向的是ark命令但该命令在后继版本velero backup describe中持续演进。当前仓库中对应实现集中在两个文件命令入口pkg/cmd/cli/backup/describe.go 中的NewDescribeCommand定义了参数解析与数据获取逻辑。值得注意的细节支持-o json结构化输出但代码注释明确结构化输出只适用于单个备份len(backups.Items) 1多备份场景会退化为 plaintext以避免内存溢出见 describe.go提供 shell 自动补全c.ValidArgsFunction cli.CompleteBackupNames(f)可直接 Tab 补全备份名支持--cacert与--insecure-skip-tls-verify用于从对象存储下载 results / volume-info 文件时的 TLS 校验配置。输出渲染pkg/cmd/util/output/backup_describer.go人类可读的 plaintext 版与 pkg/cmd/util/output/backup_structured_describer.go结构化 JSON 版共同承担字段拼接。两者都通过downloadrequest.StreamWithBSLCACert从备份存储桶拉取资源清单与卷信息文件并对文件缺失ErrNotFound做了兼容处理——例如 v1.1 之前产生的备份可能没有资源清单文件输出中会显示backup resource list not found而非直接报错。测试用例见 pkg/cmd/util/output/backup_describer_test.go 与 pkg/cmd/util/output/backup_structured_describer_test.go可作为期望输出格式的参考样例。与其他命令的协作ark describe backups通常不是孤立使用的排查链路可参考ark backup get先获取备份列表与状态概览ark_get_backups.mdark backup describe父命令 ark describeark describe是顶层命令其子命令还包括restores、schedules见 ark_describe.mdark backup logs备份 Failed/PartiallyFailed 时describe 输出会直接提示使用该命令拉取完整日志定位根因ark restic repo get/ark restic server配合排查 restic 卷备份相关状态相关命令见 ark_restic_repo_get.md。小结ark describe backups现velero backup describe是 Velero 备份体系中状态可视化的关键入口一条命令即可聚合 CRD 状态、对象存储中的结果文件、卷快照信息与删除记录。理解其参数尤其是--selector、--volume-details与全局-n和输出分节语义能显著提升备份排查效率而深入 describe.go 与output包源码则能让你在面对异常输出如资源清单缺失、JSON 结构化输出限制时心中有数。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表