Velero 卸载机制详解:`velero uninstall` 命令的删除范围与源码级实现原理

发布时间:2026/11/7 22:54:40

Velero 卸载机制详解:`velero uninstall` 命令的删除范围与源码级实现原理 Velero 卸载机制详解velero uninstall命令的删除范围与源码级实现原理【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero本文围绕 Velero 官方文档 Uninstalling Velero 讲解如何从 Kubernetes 集群中彻底卸载 Velero。内容从一条核心命令出发结合当前仓库的 CLI 源码完整剖析velero uninstall的可用参数、删除范围、执行顺序以及底层 Finalizer 处理逻辑读完你可以安全地执行卸载操作并理解每一步背后删什么、按什么顺序删、为什么这样删。一条命令完成卸载官方文档给出的卸载方式非常简洁如果希望将 Velero 从集群中完全卸载执行以下命令即可移除velero install创建的所有资源velero uninstall该命令由 CLI 中的 uninstall 子命令 实现并在 velero CLI 根命令 处通过uninstall.NewCommand(f)注册。命令参数与交互确认--force跳过交互确认命令定义了一个可选布尔参数见 uninstall.go参数类型/默认值作用--forcebool默认false强制卸载跳过是否确认卸载的交互提示--namespacestring默认velero指定 Velero 所在的命名空间来自 CLI 全局持久化参数当未使用--force时命令会先打印You are about to uninstall Velero.然后调用 confirm 包 从标准输入读取确认交互式提示Are you sure you want to continue (Y/N)?只有输入单个y不区分大小写才会继续输入n则直接返回、什么都不做输入非单字符时循环重新询问。因此在脚本、CI/CD 流水线等非交互场景下应显式加上--force以避免命令卡在等待输入velero uninstall --force命令自带的示例也说明了如何为自定义命名空间卸载velero uninstall --namespace staging删除范围velero install创建了哪些资源Run 函数 是卸载的执行主体从源码看整个卸载过程恰好覆盖三类集群资源与velero install的安装产物一一对应Velero 所在命名空间默认velero。命名空间删除会连带清掉其中的 Deployment、Service、ServiceAccount、ConfigMap含备份仓库配置、Secret、Pod 等所有命名空间内资源。ClusterRoleBinding。其命名规则来自 pkg/install/resources.go默认命名空间下名为velero若 Velero 安装在非默认命名空间则名为velero-namespace。它指向cluster-adminClusterRole 和该命名空间下的veleroServiceAccount。Velero 的全部 CRD。删除时使用标签选择器componentvelero精确匹配见 install 包的 Labels()并通过DeleteAllOf一次性删除同时还会清理历史遗留的 v1beta1 版本 CRDv1 CRD 已不存在时才会提示 V1Beta1 Velero CRDs not found, skipping...。需要注意的边界对于不存在的资源命令会打印跳过信息如Velero ClusterRoleBinding velero does not exist, skipping.而不是报错因此对已部分清理过的集群重复执行该命令是安全的。从源码的删除范围可以推断velero uninstall只操作集群内资源不会触碰外部对象存储对象桶中的备份文件、快照等数据。如果你需要彻底清除备份数据需要在卸载后另行手动清理对应的对象存储内容。集群中由备份/恢复流程创建的业务资源如恢复出来的工作负载不属于安装产物也不在本次删除范围内。执行顺序为什么先删命名空间Run的执行流程与直觉不同——它先删除命名空间再删 ClusterRoleBinding 和 CRD。源码中有明确注释uninstall.go// The CRDs cannot be removed until the namespace is deleted to avoid the problem in issue #3974 // so if the namespace deletion fails we error out here即 CRD 必须等命名空间删除完成后才能移除否则会触发上游 issue #3974 描述的问题。因此如果命名空间删除失败命令会立即报错退出Errors while attempting to uninstall Velero: ...不会继续执行后续步骤。deleteNamespace 的具体做法是先检查命名空间是否存在不存在则跳过调用deleteResourcesWithFinalizer处理携带 Finalizer 的资源下一节详述发起命名空间删除随后以 5ms 间隔轮询直到命名空间真正消失期间每轮打印一个.表示仍在等待命名空间消失后输出Velero namespace velero deleted。Finalizer 处理优雅删除与强制删除两级策略命名空间内的 Restore、DataUpload、DataDownload 资源携带 Finalizer若直接删除命名空间会因 Finalizer 未移除而卡住。deleteResourcesWithFinalizer 注释中解释了设计动机携带 Finalizer 的资源需要对应的 controller 处理完 Finalizer 后才能真正删除所以必须在删除运行这些 controller 的 Pod 之前处理这些资源controller 处理 Finalizer 时可能遇到错误并不断重试因此必须设置超时——超时后强制移除 Finalizer否则删除流程会无限卡住。具体流程分两级第一级优雅删除最长 1 分钟checkResources 检查集群中是否存在restores.velero.io、datauploads.velero.io、datadownloads.velero.io三个 CRD存在哪类就把对应的 ListRestoreList/DataUploadList/DataDownloadList加入待删除列表gracefullyDeleteResources 并发地对每类资源发起常规删除然后以 1 秒为间隔轮询在gracefulDeletionMaximumDuration定义为 1 分钟内等待它们全部消失。源码注释说明as of v1.12 支持的就这三类资源的 Finalizer后续若新增 Finalizer 类型可在此函数中扩展。涉及的 Finalizer 名称可对照 controller 源码确认资源类型Finalizer定义位置Restorerestores.velero.io/external-resources-finalizerrestore_controller.goDataUpload / DataDownloadvelero.io/data-upload-download-finalizerdata_upload_controller.go第二级强制删除优雅删除超时后若 1 分钟后资源仍未删除干净说明 Finalizer 处理卡住forcedlyDeleteResources 会先删除veleroDeployment 并等待其消失——注释解释原因是防止 controller 在下一步移除 Finalizer 后又把 Finalizer 加回去、或又新建携带 Finalizer 的资源然后遍历每类残留资源用 controllerutil.RemoveFinalizer Patch 手工摘除对应的 Finalizer使资源可以被命名空间级联删除真正清理掉。完整流程小结综合源码velero uninstall的实际执行链路为交互确认--force 跳过 └─ 检查并清理携带 Finalizer 的资源 ├─ 优雅删除 轮询等待≤ 1 分钟 └─ 超时则删除 velero Deployment手工移除 Finalizer └─ 删除 velero 命名空间并轮询等待其消失 └─ 失败则直接报错退出对应 issue #3974 的约束 └─ 删除 ClusterRoleBindingvelero / velero-namespace └─ 按标签 componentvelero 删除 v1 与历史 v1beta1 CRD └─ 输出 Velero uninstalled ⛵几点使用建议适用前提集群中存在由velero install安装的 Velero且当前 kubeconfig 对目标命名空间、ClusterRoleBinding 和 CRD 均有删除权限若使用自定义命名空间安装务必带上相同的--namespace参数否则默认只会作用于velero命名空间。卸载前建议确认已不再需要该命名空间内的备份/恢复记录CR 会随命名空间一起删除并自行评估对象存储中备份数据的去留。验证卸载结果可执行kubectl get ns velero、kubectl get clusterrolebindings | grep velero、kubectl get crd | grep velero.io确认命名空间、ClusterRoleBinding 与 CRD 均已不存在。相关源码与文档位置卸载命令实现与执行流程pkg/cmd/cli/uninstall/uninstall.go交互确认逻辑pkg/cmd/util/confirm/confirm.go安装资源与标签定义卸载范围的对照依据pkg/install/resources.goFinalizer 常量定义pkg/controller/restore_controller.go、pkg/controller/data_upload_controller.goCLI 命令注册入口pkg/cmd/velero/velero.go官方卸载文档v1.11 版site/content/docs/v1.11/uninstalling.md【免费下载链接】veleroBackup and migrate Kubernetes applications and their persistent volumes项目地址: https://gitcode.com/GitHub_Trending/ve/velero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/11/4 20:40:45

用Spacedesk把旧平板变扩展屏:局域网虚拟副屏实战指南

手头只有一台笔记本电脑,又需要第二块屏幕的时候,大多数人第一反应是买便携屏,或者翻出一台旧显示器接HDMI。但如果你手边刚好有一台旧平板、旧手机,甚至是一台不常用的Windows老本子,这套“局域网虚拟扩展屏”方案能直…

2026/11/7 22:50:23

上海哪里学习电工证 通过率揭秘怎么选培训机构

上海哪里学习电工证 通过率揭秘怎么选培训机构 证书过期了不知道怎么复审延期?你不是一个人,这是很多从事电工工作的朋友在现实中会遇到的真实问题。特别是在上海这样的大城市,电工证是从事相关工作的“门槛证”,一旦过期或没有及时复审,轻则影响工作,…

2026/11/7 22:50:23

新疆电工证好考嘛在哪考实操考试心里没底怕挂科

新疆电工证好考嘛在哪考实操考试心里没底怕挂科 你是不是也担心新疆电工证实操考试心里没底怕挂科?别急,我来帮你把关。今天我就从实际操作、报考材料、考试流程、备考技巧等多个角度,给你讲明白新疆电工证到底好考嘛,以及到底 在哪考 。 ###…

2026/11/7 22:50:23

中专考电工证年审值不值得考 内部消息全在这了

中专考电工证年审值不值得考 内部消息全在这了 你是不是也遇到过这种情况?找人代办电工证报名,结果被坑钱不说,还办了个假证?或者报名流程搞不清楚,一不小心就错过了考试时间?这些都是 中专考电工证年审…

2026/11/7 22:45:22

海口弱电电工证到期换证流程:上岗必备,错过就失业

海口弱电电工证到期换证流程:上岗必备,错过就失业 你是不是正在为海口弱电电工证到期换证发愁?别急,这篇文章就是为了帮你解决这个燃眉之急。特种作业证是许多岗位的上岗必备,没有它,别说找工作,连面试资格都没有。海口弱电电工证到期换证流程复杂又容…

2026/11/7 14:54:47

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/7 0:03:08

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科

郑州报考避坑指南:电工证和钳工证怎么选?实操考试心里没底怕挂科 实操考试心里没底怕挂科?你不是一个人。特别是在郑州这样的城市,很多施工企业负责人和一线作业人员在报考电工证和钳工证时都面临着同样的困惑。到底该考哪个证?哪个更适合自己?哪个证书…

2026/11/7 0:03:08

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱?

广西电工证办理流程全解析:外省证怎么转?在哪考最靠谱? 之前考的证在外省能不能转过来?这个问题我遇到太多了,今天就拿广西电工证办理流程来具体说说,别再走弯路了。广西电工证的报考、复审、继续教育这些环节,如果你不了解,真的会吃大亏,尤其对于从…

2026/11/7 0:03:08

电气电工证都有哪些保姆级教程

电气电工证都有哪些保姆级教程 你是不是正愁不知道去哪报名,怕被中介坑?别急,这篇保姆级教程专为河南初次报考人员准备,帮你搞清楚 电气电工证都有哪些 ,以及如何避开那些坑。 电气电工证都有哪些?别被五花八门的证书搞懵了…

2026/11/7 14:54:47

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/7 14:50:12

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑