Knative Serving Revision 开发者配置指南:垃圾回收机制与 no-gc 注解详解
文档教程云原生【免费下载链接】docsUser documentation for Knative components.项目地址https://gitcode.com/gh_mirrors/docs1/docs点击查看免费下载导读Knative Serving 中每一次对 Service 配置的变更都会生成一个不可变的 Revision 快照而长期堆积的旧 Revision 会被系统自动垃圾回收Garbage Collection以回收集群资源。本文基于 Knative 官方文档的开发者配置参考聚焦开发者如何按需修改 Revision 行为重点讲解 Revision 的基本模型、垃圾回收的默认策略以及如何通过serving.knative.dev/no-gc: true注解让某个 Revision 永不被回收并横向对比集群管理员使用的config-gcConfigMap 全局策略。读完本文你将能够自主决定哪些 Revision 必须保留、哪些可以交给系统自动清理并理解底层 GC 控制器的工作方式。Revision 是什么不可变的点状快照在 Knative Serving 中Revision 是承载应用代码与配置点状快照point-in-time snapshot的核心资源。每次修改 Knative Service 的Configuration配置例如更换镜像、调整资源配额或环境变量控制器都会生成一个新的 RevisionKubernetes 底层 Pod 的数量则根据 Revision 承接的流量进行扩缩容。需要特别注意的是Revision 无法被手动创建也不允许直接修改其 spec——它总是由Configuration的更新而派生Revision 总体上是不可变的immutable唯一的例外是它可以引用可变的 Kubernetes 核心资源如 ConfigMap、Secret以及可能被默认值变更所改写这类变更通常是语法层面而非语义层面的开发者能够做的是直接修改已存在 Revision 的 spec 来改变其行为这正是本篇文章Developer configuration options的主题。围绕 Revision 还有两个高频使用场景可帮助理解其定位流量管理通过 Service 的trafficspec可以把流量按百分比切分给多个固定 Revision或通过latestRevision: true将流量导向最新 Revision实现渐进式发布与蓝绿发布详见 Traffic management自动扩缩容Revision 会依据流量自动扩缩支持缩容到零详见 Autoscaling 相关文档。垃圾回收不活跃 Revision 的自动清理默认行为当 Knative Service 的某些 Revision 不再活跃inactive时系统会在设定的时间过后自动将其清理并回收对应的集群资源。这一过程在 Knative 文档中被明确定义为garbage collection详见片段 about-revisions-garbage-collection.md其语义与 Kubernetes 的垃圾回收 一脉相承。垃圾回收的配置权限分两层角色配置范围配置手段开发者Developer仅针对某个具体 Revision在 Revision 的 metadata 上添加注解集群管理员Administrator集群内所有 Service 的所有 Revision全局默认值修改config-gcConfigMap也就是说管理员设定的config-gc是集群级默认策略而开发者可以在单个 Revision 上做例外处理。全局策略中的保留规则管理员在 Revision 管理员配置选项 中可以通过修改knative-serving命名空间下的config-gcConfigMap来控制集群内所有 Revisions 的回收行为可配置项如下配置键含义retain-since-create-timeRevision 被创建后必须经过多长时间才会进入垃圾回收的候选名单retain-since-last-active-timeRevision 最后一次活跃后必须经过多长时间才会进入垃圾回收的候选名单min-non-active-revisions至少要保留的不活跃 Revision 数量max-non-active-revisions最多保留的不活跃 Revision 数量无论上述参数如何设置只要 Revision 属于以下任意一种情况就始终会被保留该 Revision 是活跃的并且正被某条 Route 引用该 Revision 的创建时间在retain-since-create-time指定的时间窗口内该 Revision 在retain-since-last-active-time指定的时间窗口内最后一次被 Route 引用当前存在的 Revision 数量少于min-non-active-revisions指定的数量。管理员常用配置示例来自 revision-admin-config-options.md立即清理所有不活跃 RevisionapiVersion: v1 kind: ConfigMap metadata: name: config-gc namespace: knative-serving data: min-non-active-revisions: 0 max-non-active-revisions: 0 retain-since-create-time: disabled retain-since-last-active-time: disabled ...保留最近 10 个不活跃 RevisionapiVersion: v1 kind: ConfigMap metadata: name: config-gc namespace: knative-serving data: retain-since-create-time: disabled retain-since-last-active-time: disabled max-non-active-revisions: 10 ...在集群上完全禁用垃圾回收apiVersion: v1 kind: ConfigMap metadata: name: config-gc namespace: knative-serving data: retain-since-create-time: disabled retain-since-last-active-time: disabled max-non-active-revisions: disabled ...关于 ConfigMap 的编辑方式与最佳实践可参考 Working with ConfigMaps这些 Serving 配置在 管理员总览 中也有系统化归纳。为单个 Revision 禁用垃圾回收no-gc 注解这是本文关联文档 revision-developer-config-options.md 给出的核心开发者级操作为某个 Revision 添加注解serving.knative.dev/no-gc: true即可让它永不被垃圾回收。apiVersion: serving.knative.dev/v1 kind: Revision metadata: annotations: serving.knative.dev/no-gc: true ...使用要点注解的键serving.knative.dev/no-gc注解的值字符串true注意 YAML 中需要加引号因为它是字符串值作用范围仅作用于被标注的单个 Revision不影响其他 Revision也不受集群级config-gc策略影响典型使用场景需要长期保留某个特定版本用于审计、回滚基准、灰度对照或合规留存时避免它被系统当作不活跃 Revision清理掉。通过 Service 模板间接标注虽然注解加在 Revision 上但在实际业务中Revision 往往由 Service 自动派生。你可以在部署 Service 时把该注解写入 Service 的template.metadata.annotations这样每次生成的 Revision 都会携带serving.knative.dev/no-gc: trueapiVersion: serving.knative.dev/v1 kind: Service metadata: name: my-service namespace: default spec: template: metadata: annotations: serving.knative.dev/no-gc: true spec: containers: - image: ghcr.io/knative/helloworld-go:latest ...说明Service 中任何对 spec、metadata 标签或注解的变更都会同步复制到其拥有的 Route 与 Configuration详见 Knative Services并进一步触发新 Revision 的生成因此通过模板注入注解是最符合声明式工作流的方式。查看与验证你可以使用kubectl查看 Revision 的完整定义确认注解是否生效kubectl get revision revision-name --output yaml输出中的metadata.annotations应包含serving.knative.dev/no-gc: true。关于 Revision 状态的进一步排查如检查 Revision 是否 Ready可参考 调试应用问题。底层视角GC 控制器的实现演进从仓库中的版本发布记录可以还原 Knative Serving 垃圾回收能力的演进脉络这有助于理解config-gc参数与no-gc注解背后的实现逻辑v0.17实现了新的垃圾回收器支持基于时间或基于 min/max 数量边界两种自动删除旧 Revision 的策略见 v0.17 发布说明同时引入 ResponsiveGC 特性开关开启后停止刷新 Revision 上的lastPinned注解时间戳v0.18Responsive 式 Revision 垃圾回收默认开启见 v0.18 发布说明v0.19ResponsiveRevisionGC默认启用见 v0.19 发布说明v0.20 / v0.21移除了 GC 特性开关及 v1 GC/Labeler 相关代码见 v0.20 发布说明 与 v0.21 发布说明GC 机制走向成熟与稳定。从上述演进可以推断当前 GC 控制器同时依据创建时间 / 最近活跃时间以及不活跃数量上下限两类判定维度工作这与管理员在config-gc中看到的retain-since-create-time、retain-since-last-active-time、min-non-active-revisions、max-non-active-revisions四个参数一一对应而no-gc注解则是在此判定之上提供白名单式的强制保留能力。小结开发者与管理员如何协同管理 Revision 生命周期综合来看Knative Serving 对 Revision 生命周期的管理遵循全局默认 局部例外的分层设计默认层集群管理员通过knative-serving命名空间下的config-gcConfigMap 设定全局回收参数控制所有 Service 的 Revision 保留时长与数量例外层开发者对需要长期保留的 Revision 添加serving.knative.dev/no-gc: true注解使其永久豁免于垃圾回收判定原则无论全局参数如何被 Route 引用的活跃 Revision、处于保留时间窗口内的 Revision、以及数量低于min-non-active-revisions阈值时的 Revision都始终被保留。实践中建议仅在确有回滚、审计或对照需求时才使用no-gc注解避免无节制保留导致集群资源泄漏同时对全局config-gc的调整应谨慎评估对集群资源水位的影响。相关资源Revision 开发者配置选项本主题原文Revision 管理员配置选项全局 GC 策略Revision 概述Revision 垃圾回收片段说明Knative Service 概述流量管理Revision 之间的流量切分默认配置 ConfigMapconfig-defaults赞分享文档教程云原生【免费下载链接】docsUser documentation for Knative components.项目地址https://gitcode.com/gh_mirrors/docs1/docs点击查看免费下载相关推荐Knative Serving Revision 垃圾回收机制解析config-gc 配置与 no-gc 注解实战指南Knative Serving Revision 垃圾回收机制解析config gc 配置与 no gc 注解实战指南 本文以 Knative Serving文档教程云原生Knative Serving Revision 深入解析不可变快照、流量切分与垃圾回收机制Knative Serving Revision 深入解析不可变快照、流量切分与垃圾回收机制 Revision修订版本是 Knative Serving文档教程云原生Julia垃圾回收终极指南分代GC与内存管理机制详解Julia垃圾回收终极指南分代GC与内存管理机制详解 Julia作为一款高性能动态编程语言其垃圾回收GC机制是实现卓越性能的关键所在。Julia的GC采编程语言编译器语言运行时JIT编译标准库解释器上一篇3分钟让Figma说中文设计师必备的界面汉化神器下一篇如何在3分钟内将Figma界面完全汉化设计师必备的中文翻译插件终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Windows-classic-samples 深入解析:基于 Windows Web Services API 的 HTTP 服务器 Username-over-SSL 混合安全认证示例

Windows-classic-samples 深入解析:基于 Windows Web Services API 的 HTTP 服务器 Username-over-SSL 混合安全认证示例

示例工程 【免费下载链接】Windows-classic-samples This repo contains samples that demonstrate the API used in Windows classic desktop applications. 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-classic-samples 点击查看 免费下载 本篇文章以 …

2026/10/16 2:29:53 阅读更多 →
仓颉语言接入 ohos.multimedia.media 媒体服务:AVImageGenerator 视频缩略图获取实战指南

仓颉语言接入 ohos.multimedia.media 媒体服务:AVImageGenerator 视频缩略图获取实战指南

文档知识库教程OpenHarmony 【免费下载链接】CangjieCorpus 本仓库为仓颉编程语言语料库,聚焦 仓颉编程语言 核心知识体系,整合官方开发指南、API 文档、典型代码示例及语法规范等多维度资源,经结构化处理与专业标注,构建为支持 R…

2026/10/16 2:29:53 阅读更多 →
Windows Web Services(WWS):使用服务主机(Service Host)构建 HTTPS 采购订单服务的完整实战解析

Windows Web Services(WWS):使用服务主机(Service Host)构建 HTTPS 采购订单服务的完整实战解析

示例工程 【免费下载链接】Windows-classic-samples This repo contains samples that demonstrate the API used in Windows classic desktop applications. 项目地址: https://gitcode.com/gh_mirrors/wi/Windows-classic-samples 点击查看 免费下载 导读 本文围…

2026/10/16 2:29:53 阅读更多 →

最新新闻

自定义表单设计器-教学讲解

自定义表单设计器-教学讲解

自定义表单设计器 - 教学讲解目标读者:第一次接触本项目自定义表单设计器的同学 阅读时长:约 20 分钟 学完之后,你能完整说清楚下面这 3 件事: 设计器中间"手机壳"里的控件预览,到底是怎么画出来的&#xff…

2026/10/16 3:14:02 阅读更多 →
YOLO26改进:SPPF结合FFocal焦点调制提升目标检测精度

YOLO26改进:SPPF结合FFocal焦点调制提升目标检测精度

1. 为什么大家都在改SPPF?先搞清楚原始结构的真实瓶颈YOLO系列的SPPF模块,说白了就是空间金字塔池化的进化版。它的核心作用是把不同尺度的特征做融合,让网络对小目标、大目标都有感知能力。原版实现是先用一个CBS(ConvBNSiLU&…

2026/10/16 3:14:02 阅读更多 →
大模型全面开放实测:从对话、API接入到生产落地的完整指南

大模型全面开放实测:从对话、API接入到生产落地的完整指南

这个标题我看一眼就坐直了。倒不是说“全面开放”这四个字有多新鲜,而是“免费用户也能用了”这一句,直接戳中了之前所有绕过限制、寻找镜像站、甚至去买共用账号的人——包括我。我把手头的测试项目停了一下午,专门把界面点了一遍&#xff0…

2026/10/16 3:14:02 阅读更多 →
宝石装箱与容斥原理:从公式推导到代码实现

宝石装箱与容斥原理:从公式推导到代码实现

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

2026/10/16 3:14:02 阅读更多 →
STM32移植TencentOS tiny MQTT组件实现物联网云接入

STM32移植TencentOS tiny MQTT组件实现物联网云接入

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

2026/10/16 3:14:02 阅读更多 →
微信小程序圆环组件开发:Canvas 2D与CSS方案选型及性能优化实战

微信小程序圆环组件开发:Canvas 2D与CSS方案选型及性能优化实战

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

2026/10/16 3:13:02 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

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

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/15 9:49:14 阅读更多 →