拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Velero(Ark v0.6.0)`ark describe backups` 命令详解:备份详情查看与标签筛选实战指南

VeleroArk v0.6.0ark describe backups命令详解备份详情查看与标签筛选实战指南【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero本文以仓库中 ArkVelero 前身v0.6.0 的 CLI 参考文档 ark_describe_backups.md 为骨架结合当前仓库中pkg/cmd/cli/backup/describe.go等源码实现系统讲解ark describe backups命令的语法、全部参数、输出内容与底层工作原理。读完本文你将掌握如何查看单个或多个备份的完整详情、如何用标签选择器批量筛选备份以及该命令在 Ark/Velero 架构中的真实调用链。命令概览为什么需要 describe backups在 Kubernetes 集群的备份与恢复场景中ark get backups只能给出备份的概要列表名称、状态、TTL 等一维信息而诊断一个备份是否真正成功、卷快照是否完整、资源筛选是否生效必须查看备份对象的全量明细。ark describe backups正是为此设计它以人类可读的格式将一个或多个 Backup 对象的 Spec期望配置与 Status实际执行结果完整输出是 Ark/Velero 日常运维中最常用的排障命令之一。在 v0.6.0 时代该命令的完整形态是ark describe backups当前版本的 Velero 中其等价形式为velero backup describe源码中别名backup亦可用底层实现函数保持一致仍位于 pkg/cmd/cli/backup/describe.go。命令语法Synopsis根据原文档命令的标准用法如下ark describe backups [NAME1] [NAME2] [NAME...] [flags]关键语义不传 NAME 时列出并描述当前命名空间中所有备份的详情可通过--selector筛选。传一个或多个 NAME 时只描述指定名称的备份可一次传入多个备份名例如ark describe backups daily-backup weekly-backup。名称参数支持 Shell 补全当前源码中通过c.ValidArgsFunction cli.CompleteBackupNames(f)见 describe.go注册了备份名称的自动补全输入备份名时按 Tab 即可提示候选。命令选项Optionsv0.6.0 文档中ark describe backups自身仅暴露两个参数选项缩写默认值说明--help-h无显示 backups 子命令的帮助信息--selector-l空字符串仅显示匹配该标签选择器的备份项--selector的实战价值当备份由定时调度Schedule批量产生时每个备份都会被打上调度器标签此时可以用标签选择器一次性描述一组相关备份例如ark describe backups -l ark-schedulenightly当前源码中该参数解析为metav1.ListOptions.LabelSelector并通过labels.Parse(listOptions.LabelSelector)解析为 Kubernetes 标准的标签选择器语法describe.go。因此它支持keyvalue、key in (v1, v2)、key!value等完整的选择器表达式与kubectl get -l的语义一致。继承自父命令的全局选项以下选项并非describe backups独有而是 Ark CLI 所有命令从根命令继承通用的全局配置同样适用于本命令选项默认值说明--alsologtostderrfalse除了写日志文件外同时将日志输出到标准错误流--kubeconfig string无指定用于连接 Kubernetes apiserver 的 kubeconfig 文件路径未设置时依次尝试环境变量KUBECONFIG与集群内配置--log_backtrace_at traceLocation:0当日志命中所指定的file:N位置时输出堆栈跟踪--log_dir string空非空时将日志文件写入该目录--logtostderrfalse将日志输出到标准错误流而非写入文件--stderrthreshold severity2达到或超过该级别对应 ERROR的日志同时写入 stderr-v, --v Level0设置 V 级别日志的详细程度--vmodule moduleSpec空逗号分隔的patternN列表按文件过滤设置日志级别kubeconfig 的查找顺序根据同目录下的 CLI 参考文档Ark 客户端查找集群凭证的顺序为--kubeconfig命令行参数$KUBECONFIG环境变量集群内配置仅当 Ark 以 Pod 形式运行在集群中时可用。容器化运行方式原文档推荐通过 Docker 别名运行客户端避免本地编译假设KUBECONFIG已设置alias arkdocker run --rm -u $(id -u) -v $(dirname $KUBECONFIG):/kubeconfig -e KUBECONFIG/kubeconfig/$(basename $KUBECONFIG) gcr.io/heptio-images/ark:latest该别名会把本地的 kubeconfig 目录挂载进容器并自动完成环境变量映射此后ark describe backups ...即可直接使用。注意此镜像地址为 v0.6.0 时代Heptio Ark 时期的容器仓库后续版本随 Velero 品牌迁移而变更。输出内容逐段解读ark describe backups的输出由 pkg/cmd/util/output/backup_describer.go 中的DescribeBackup函数生成从源码backup_describer.go可以看出输出按固定顺序组织为以下区块元数据Metadata名称、命名空间、标签、注解等ObjectMeta内容Phase阶段备份当前状态包括New、Queued、InProgress、Completed、Failed、PartiallyFailed、FailedValidation、Deleting等。源码对失败类阶段以红色高亮、Completed以绿色高亮若备份失败还会提示运行ark backup logs name查看详细日志backup_describer.go 对应逻辑Validation errors若存在校验错误则逐条列出Errors / Warnings备份执行过程中产生的错误与警告统计及明细Spec备份规格包括包含/排除的命名空间、包含/排除的资源、集群级资源策略、标签选择器、存储位置Storage Location、是否开启原生卷快照、TTL、CSISnapshotTimeout、Hooks备份前后钩子等Status执行状态备份格式版本、开始/完成时间、过期时间默认 30 天、备份进度总条目数与已备份条目数、卷快照列表Velero-Native 快照与 CSI 快照、Pod Volume Backups文件系统备份明细等Deletion Attempts删除尝试若有对应的DeleteBackupRequest会列出每次删除尝试的时间戳、阶段与错误信息DescribeDeleteBackupRequests。此外若备份的Spec.ResourcePolicy或集群级全局卷策略生效输出中也会体现对应策略的类型与名称backup_describer.go。源码级实现describe 是怎么工作的命令树的注册describe backups并不是独立命令而是describe命令树的一个子节点。在 pkg/cmd/cli/describe/describe.go 中NewCommand将backups、restores、schedules三个子命令统一挂载到ark describe之下backup.NewDescribeCommand(f, backups)并注册别名backupschedule.NewDescribeCommand(f, schedules)别名schedulerestore.NewDescribeCommand(f, restores)别名restore。同时在 pkg/cmd/cli/backup/backup.go 中ark backup describe也作为backup命令的子命令存在因此ark describe backups与ark backup describe在功能上是等价的。数据获取的两条路径核心实现位于 pkg/cmd/cli/backup/describe.go命令运行时分两种模式取数按名称获取当传入一个或多个备份名时逐个通过 controller-runtime 客户端kbClient.Get拉取 Backup 对象指定当前命名空间列表获取未传名称时解析--selector后调用kbClient.List按标签选择器列出当前命名空间下匹配的全部备份。无论哪种模式接下来都会额外拉取两类关联对象用于丰富描述信息通过BackupNameLabel与BackupUIDLabel标签查询与该备份关联的全部DeleteBackupRequest删除请求记录通过BackupNameLabel标签查询与该备份关联的全部PodVolumeBackup卷级文件系统备份记录。这两类数据正是输出中Deletion Attempts与Pod Volume Backups区块的信息来源。输出渲染最终输出由 output.DescribeBackup 完成。当前版本还支持结构化输出DescribeBackupInSF见 backup_structured_describer.go但源码明确限定结构化输出仅适用于单个备份len(backups.Items) 1时生效批量描述多个备份时仍使用纯文本格式以避免 OOMdescribe.go。测试用例验证仓库中的 pkg/cmd/cli/backup/describe_test.go 对该命令进行了自动化验证测试构造了一个名为bk-describe-1的 Backup禁用卷快照通过 Fake 客户端注入后执行NewDescribeCommand并断言输出中必须包含Name: bk-describe-1、Backup Volumes:与Or label selector: none等关键字段。这从侧面印证了本文所述输出格式的真实性即使是一个未执行任何卷备份的最小 Backupdescribe也会完整呈现其元数据、卷信息与标签选择器区块可用于快速验证 CLI 与 apiserver 的连通性。版本演进提醒从 ark 到 velero需要特别说明的是本文依据的 v0.6.0 文档属于 ArkHeptio 早期品牌时期命令名为ark。后续 Velero 品牌统一后命令更名为velero backup describe或velero describe backups新版本在原有-h、-l基础上新增了若干参数例如--details显示更多细节卷快照 ID、类型、可用区、IOPS、资源列表、数据移动明细等--insecure-skip-tls-verify跳过对象存储 TLS 证书校验不安全官方不建议生产环境使用--cacert指定用于校验 TLS 连接的 CA 证书包未指定时回退使用 BackupStorageLocation 的 CA 证书--output / -o输出格式支持plaintext与json仅对单个备份生效。以上新参数均可在当前源码 pkg/cmd/cli/backup/describe.go 中找到定义。若你使用的是新版本 Velero请以velero backup describe --help的实际输出为准。相关命令导航ark describe backups属于ark describe命令族同族还包括ark describedescribe 父命令用于描述 Ark 资源-h查看帮助ark describe restores描述恢复任务详情ark describe schedules描述定时调度详情ark get backups获取备份概要列表与 describe 形成列表-详情搭配ark backup logs备份失败时查看日志describe输出的 Phase 提示中会直接给出该命令的用法。【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门