knative serving 0.8 变更

简介: knative serving 0.8 变更 前言 knative serving在8月6日发布了0.8版本,这个版本是Serving v1的第一个候选版本。 0.8主要增加了以下功能: Target Burst Capacity (TBC) 支持,用于避免突发流量在queue-proxy里排队。

knative serving 0.8 变更

前言

knative serving在8月6日发布了0.8版本,这个版本是Serving v1的第一个候选版本。

0.8主要增加了以下功能:

  • Target Burst Capacity (TBC) 支持,用于避免突发流量在queue-proxy里排队
  • 减少Readiness 健康检查需要的时间
  • Route/Service的ready状态能代表可以访问了

本次的不兼容变更:

  • 取消支持Istio 1.0.x(Istio 1.0.x的生命周期也已经结束),要求最低版本为1.1.x
  • 把 github.com/knative/serving import paths 改成 knative.dev/serving

下面是每个模块具体的改进

扩缩容

Target Burst Capacity (TBC) 支持 #4443#4516#4580#4758

设计这个的原因是,如果有突发流量,需要避免所有流量都涌入某几个pod内,导致流量在queue-proxy中排队。之前已经在Activator实现了限速器,但只适合从0扩容的场景。这次改进了一些,不只是从0扩容的时候,在实例数不满足时也会介入。
这次引入了TBC参数,设定突发流量达到多少并发才触发,和它配合的还有一个目标容量比例(container-concurrency-target-percentage),默认值是70%,用于autoscaler决定达到容量多少比例后,需要扩容一个pod。
如果通过计算,当前的突发流量超过剩余空闲的容量,Activator将加入到数据链路来(通过把Activator Endpoint加入public service,此时同时包含Activator和用户容器的endpoint),Activator会缓存请求,直到有充足的容量。
TBC这个配置可以在集群或者revision配置,默认不开启。
设计文档:链接

Activator HPA 和性能改进 #4886#4772

因为加入了TBC功能,activator在数据面上使用的更频繁,有一些性能和扩容问题暴露出来。现在给activator加了基于CPU的水平扩容和改进了请求延迟。

快速缩容到0 #4883#4949#4938 

如果activator在请求路径中(例如使用了TBC),现在会忽略缩容到0的静默等待时间(grace period)。现在静默等待时间改为activator确认在数据路径上,之前是一个固定值。

新增Metrics CRD #4753#4894#4895#4913#4924 

扩缩容指标变为独立的CRD(之前是在内存中创建),这样允许新的autoscaler可以在程序外部使用。
基于这个变更,把HPA扩缩容放到了独立的进程。

稳定性和性能:

  • 改进测试偶然报错
  • 更好的校验annotation和configmap
  • 当Autoscaler重启后,会等待一个合理数量的指标采集,才决定缩容。

核心API

Readiness 健康检查冷启动时间改进 #4148#4649#4667#4668#4731

queue-proxy sidecar现在会同时执行用户配置的readiness健康检查和默认的TCP检查。这使得我们可以更激进的对用户提供的容器做检查(相对于K8s默认秒级的间隔)。
readiness健康检查的 periodSeconds 默认为0,表示开启系统定义的亚秒级健康检查。可以把 periodSeconds 改为大于0的值,这样就使用k8s默认的健康检查。
实现方式是读取用户的配置,把用户的httpGet readiness配置转为queue-proxy的代码实现,通过执行脚本的方式检查。

其他变更

网络

Route/Service 只有从Istio ingress可访问才汇报Ready (#1582#3312)

Route 只有从Istio ingress可访问才汇报Ready,这样用户就可以判断Service/Route的状态,开始使用。

移除集群级别的 ClusterIngress 资源(#4028)

networking.internal.knative.dev/ClusterIngress 已经被namespace级别的 networking.internal.knative.dev/Ingress 资源替换, ClusterIngress资源会在0.9移除。

修复未激活的Revision流量比例不对 (#882#4755)

当如果有超过一个未激活的Revision,不再只路由到最大的分片。为了支持这个,现在宣布去掉支持Istio 1.0

其他变更

  • 每个 sub-Route 可以有自己的可见性设置(#3419)
  • 集成 Gloo Ingress

监控

  • 自动冷启动时间收集 #2495 
  • 修复部分指标名称不正确 #4716

参考

knative serving 0.8 release note

目录
相关文章
|
4天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
5天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1093 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1770 9
|
10天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
701 152
|
12天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
664 13
|
7天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
459 5