十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

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

Velero / Ark `backup describe` 命令完全指南:语法、选项与输出详解

Velero / Ark `backup describe` 命令完全指南:语法、选项与输出详解 Velero / Arkbackup describe命令完全指南语法、选项与输出详解【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/veleroark backup describe在 Velero 演进后对应velero backup describe用于以人类可读的格式查看一个或多个备份Backup的完整描述信息是备份完成后核对范围、排查失败、检查卷快照与数据移动结果的核心诊断命令。通过本文你将掌握该命令的完整语法、全部参数含义、输出字段与源码实现原理并能结合--details、--selector等选项高效定位备份问题。本文以仓库中的命令参考文档 site/content/docs/v0.9.0/cli-reference/ark_backup_describe.md 为主体并对照当前源码如 pkg/cmd/cli/backup/describe.go展开深度解析。版本背景从ark到velero的命名演变需要先说明的是本命令参考文档来自 v0.9.0 时期的文档目录。在那个阶段该项目还以Arkheptio-ark命名CLI 入口为ark默认操作命名空间为heptio-ark卷备份基于restic。从 site/content/docs/v0.9.0/cli-reference/README.md 可以看到当时的 Ark 客户端用于发起临时备份ad-hoc backups、定时备份scheduled backups和恢复restores其命令与标志的完整清单可在 CLI 中通过--help查看。项目演进为 Velero 后命令更名为velero backup describe默认命名空间变为velerorestic 逐步被内置的上传器uploader体系取代命令也新增了--details、--output、--cacert、--insecure-skip-tls-verify等标志。但命令的核心语义——Describe backups——始终保持不变。下文将同时覆盖 v0.9.0 文档中的原始定义与当前源码中的实现形态。命令语法与基本用法根据原文档命令的 Synopsis语法如下ark backup describe [NAME1] [NAME2] [NAME...] [flags]其语义要点如下位置参数为备份名称[NAME1] [NAME2] [NAME...]表示可以一次传入一个或多个备份名称命令会逐个输出每个备份的描述。不带任何名称时按当前源码 pkg/cmd/cli/backup/describe.go 的实现命令会改为列出命名空间下全部备份并逐一描述可通过--selector缩小范围。flags可选的命令标志见下文。现代等价命令为velero backup describe [NAME1] [NAME2] [NAME...] [flags]此外命令支持通过 Tab 补全自动填充已有的备份名称——源码中通过c.ValidArgsFunction cli.CompleteBackupNames(f)注册pkg/cmd/cli/backup/describe.go。命令专属选项详解原文档ark backup describe定义了以下专属选项选项简写类型说明--help-h-显示 describe 子命令的帮助信息--selector-lstring只显示匹配该标签选择器label selector的备份--volume-details-bool显示 restic 卷备份的详细信息对应到当前 Velero 源码describe命令的选项已扩展为见 pkg/cmd/cli/backup/describe.go选项简写默认值说明--selector-l空仅显示匹配该标签选择器的备份--details-false在输出中展示额外的详细信息如各卷快照的 ID、类型、可用区、IOPS、Pod 卷备份明细等--insecure-skip-tls-verify-false为true时不校验对象存储 TLS 证书的有效性。存在中间人攻击风险不建议生产环境使用--cacert-来自客户端配置文件校验 TLS 连接时使用的 CA 证书捆绑包路径若未指定则尽量使用 BackupStorageLocation 的 CA 证书--output-oplaintext输出格式合法值为plaintext和jsonjson仅适用于单个备份其中--volume-details在 Velero 时代演化为--detailsv0.9.0 中它专门用于展开 restic 卷备份的细节而现代实现中--details是统管「卷快照细节 Pod 卷备份细节 资源清单 备份项操作明细」的总开关详见下文输出结构分析。从父命令继承的选项原文档列出 describe 命令从ark父命令继承的全部选项这些选项在当前 Velero 中依然存在用于控制 kubeconfig、日志与命名空间--alsologtostderr log to standard error as well as files --kubeconfig string Path to the kubeconfig file to use to talk to the Kubernetes apiserver. If unset, try the environment variable KUBECONFIG, as well as in-cluster configuration --kubecontext string The context to use to talk to the Kubernetes apiserver. If unset defaults to whatever your current-context is (kubectl config current-context) --log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0) --log_dir string If non-empty, write log files in this directory --logtostderr log to standard error instead of files -n, --namespace string The namespace in which Ark should operate (default heptio-ark) --stderrthreshold severity logs at or above this threshold go to stderr (default 2) -v, --v Level log level for V logs --vmodule moduleSpec comma-separated list of patternN settings for file-filtered logging对实操最有影响的参数是-n, --namespacev0.9.0 默认值为heptio-ark在 Velero 中默认值为velero。describe 命令只会读取该命名空间下的 Backup 及其关联对象。--kubeconfig指定 kubeconfig 路径。原文档 README 明确指出Ark/Velero 按以下顺序查找集群凭据--kubeconfig命令行标志 →$KUBECONFIG环境变量 → 集群内凭据仅当运行于 Pod 内时。--kubecontext指定要使用的 kubeconfig context默认取当前 context。其余--alsologtostderr、--log_dir、--logtostderr、--stderrthreshold、-v/--v、--vmodule、--log_backtrace_at均为 Go 标准 glog 风格的日志控制参数。命令实现原理describe 的执行流程从源码看velero backup describe的执行流程如下pkg/cmd/cli/backup/describe.go加载客户端配置读取本地客户端配置文件如失败仅在 stderr 输出告警不阻塞命令执行从中取得--cacert的默认值。校验输出格式--output只接受plaintext与json两种值否则报错。获取备份列表传入了名称参数时逐个调用kbClient.Get按「命名空间 名称」拉取 Backup 对象未传名称时解析--selector为labels.Parse得到的标签选择器调用kbClient.List拉取命名空间下所有或匹配选择器的Backup。关联对象查询对每个备份额外拉取两类关联 CRDeleteBackupRequest按velero.io/backup-name与velero.io/backup-uid标签匹配用于展示备份删除请求历史PodVolumeBackup按备份名称标签匹配用于展示卷备份restic / 文件系统备份明细。输出渲染单个备份 非plaintext格式调用output.DescribeBackupInSF结构化输出防止大列表 OOM其他情况调用output.DescribeBackup输出人类可读文本多个备份之间以空行分隔。错误处理查询关联对象失败例如拉取 DeleteBackupRequest 或 PodVolumeBackup 出错会输出错误信息到 stderr但不会中断整个描述过程。单元测试 pkg/cmd/cli/backup/describe_test.go 验证了该流程它创建名为bk-describe-1的备份并执行命令断言输出中包含Name:、Backup Volumes:、Or label selector: none等关键字段可作为理解命令输出的最小参考。输出结构逐字段解读ark/velero backup describe的输出由 pkg/cmd/util/output/backup_describer.go 中的DescribeBackup函数生成整体结构如下v0.9.0 时代字段较少以下为当前实现的完整字段体系1. 元数据Metadata与 Phase首先输出备份的Name、Namespace、Labels、Annotations等元数据。随后输出Phase字段FailedValidation、PartiallyFailed、Failed会以红色显示Completed以绿色显示见 backup_describer.go。若 Phase 为空则视为New。当备份 Phase 为Failed或PartiallyFailed时输出末尾会附带提示(run velero backup logs name for more information)引导用户用 logs 命令查看日志。若 Phase 为Queued额外输出Queue position队列位置。若备份存在Validation errors逐条以红色输出。2. 结果汇总Warnings / Errors当备份存在警告或错误时命令会从对象存储下载备份结果文件并展示明细DescribeBackupResults。若结果文件不存在例如 v1.1 之前的老备份或文件被手动删除则仅显示Errors: N/Warnings: N的计数backup_describer.go。3. 备份规格SpecDescribeBackupSpec输出创建备份时的完整配置backup_describer.goNamespacesIncluded/Excluded为空时显示*全部或noneResourcesIncluded/Excluded以及Cluster-scoped: auto集群级资源是包含/排除/自动Label selector与Or label selector备份对象筛选条件默认noneStorage Location使用的备份存储位置BackupStorageLocationVelero-Native Snapshot PVs是否对 PV 做原生快照true/false/autoFile System Backup (Default)、Snapshot Move Data、Data Mover、Backup Type与卷数据移动相关的配置TTL备份保留时长默认 720h0m0s 即 30 天CSISnapshotTimeout与ItemOperationTimeoutCSI 快照超时与备份项操作超时Hooks备份钩子pre/post exec hook的容器、命令、错误处理策略Continue/Fail与超时OrderedResources自定义资源备份顺序。4. 备份状态Status与进度DescribeBackupStatus输出backup_describer.goBackup Format Version、Started/Completed时间戳校验失败前为n/a、Expiration过期时间Total items to be backed up/Items backed up备份进度计数进行中时文案略有不同HooksAttempted/HooksFailed钩子执行统计若存在备份项操作Backup Item Operations显示成功/失败计数加--details后展示每个操作的插件、Operation ID、Phase、进度与错误。5. 卷信息Backup Volumes这是--details/--volume-details发挥核心作用的区域describeBackupVolumesbackup_describer.goVelero-Native Snapshots原生云厂商快照。默认只显示 PV 名称加--details后显示 Snapshot ID、Volume Type、Availability Zone、IOPS、ResultCSI SnapshotsCSI 快照按namespace/pvc显示。加--details后显示 Snapshot Content Name、Storage Snapshot ID、Size、CSI Driver、Result以及数据移动Data Movement的 Operation ID、Data Mover、Backup Type、Uploader Type、数据大小、增量大小Incremental Size等Pod Volume Backups文件系统级卷备份v0.9.0 文档中的 restic 卷备份即属于此类。默认按 PhaseCompleted、Failed、Canceled、In Progress 等分组显示计数加--details后按 Podnamespace/name列出具体卷名并对进行中的备份显示进度百分比、对完成的备份显示(size: ...)与增量大小。6. 删除尝试Deletion Attempts若备份存在关联的 DeleteBackupRequest输出末尾展示每次删除请求的时间戳、Phase 与错误信息DescribeDeleteBackupRequestsbackup_describer.go并统计失败次数。输出格式控制-o json除默认的plaintext外当前实现支持-o json结构化输出。需要注意的是json格式仅适用于单个备份源码注释明确说明这是为避免大列表序列化导致 OOM见 describe.go 对应的调用处如需以结构化方式查看多个备份应逐个调用describe命令并自行迭代。典型使用场景1. 查看单个备份的完整信息含卷明细ark backup describe my-backup --volume-details # 现代 Velero 对应 velero backup describe my-backup --details2. 查看多个备份velero backup describe backup-a backup-b backup-c3. 按标签筛选并查看一批备份velero backup describe -l appnginx4. 获取 JSON 格式的结构化描述仅单个备份velero backup describe my-backup -o json5. 跨命名空间查看velero backup describe my-backup -n velero与其他命令的配合使用ark backup describe隶属于 ark backup 子命令族。在实践中它通常与以下命令配合ark backup get列出全部备份及 Phase先get定位问题备份再describe深入查看ark backup logs当describe输出的 Phase 为失败并提示run ... for more information时用日志命令查看具体报错ark backup create 与 ark backup delete创建与删除备份describe输出的 Deletion Attempts 可用于确认删除请求的执行情况。小结ark/velero backup describe是一个只读、零副作用的诊断命令它从 Kubernetes API 读取 Backup 及其关联的 PodVolumeBackup、DeleteBackupRequest 对象并视需要从对象存储下载卷信息、资源清单与结果文件最终渲染出覆盖备份配置、进度、快照、卷备份与删除历史的完整视图。理解其输出字段尤其是--details展开的卷快照与数据移动明细是排查备份失败、验证备份完整性、核对备份范围的最直接手段。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表