Knative Serving 0.11.0 版本变更

简介:

前言

Knative Serving v0.11.0 版本已经于 12 月 11 号正式发布。本次版本继续优化activator负载均衡能力,这次解决了并发数为10的场景,测试结果显示大部分请求在0.14秒完成,具体细节见以下内容。

主要变更

改进在低并发下的负载均衡

点我查看设计文档(google docs)
回顾上一个版本的变更,为了让activator把请求更均匀发送到pod上,引入了two random choices算法,并且为了解决多个activator的场景,把pod分配给特定的activator来处理。举个例子,假如有2个activator,5个pod,每个activator会分配到2个pod,最后剩下的按顺序分配,也就是第一个activator负责3个pod,第二个负责两个pod。这样实现后,发现如果并发数是1的时候效果不错,但并发数是10的时候效果不好。

目前的问题是如何处理剩下的pod如何平均分配流量。作者新的方案是去掉了two random choices算法,改用knative里面的breaker来实现,通过设置容量达到平分的目的。具体算法如下,假设有2个activator,5个pod,并发数是10,则每个activator的容量为 5 * 10 / 2 = 25。另外每个pod的podIPTracker里面有个breaker,根据之前的分配策略,每个activator独自向两个pod发送,podIPTracker里面的breaker容量都是10,但还剩下一个pod,把这个pod的容量设置为10/2=5,也就是说对于这个pod,每个activator最多同时给它5个并发。

这次改动后,每次请求先判断这个pod的容量是否满了,如果没满会先发送给它处理,这样会让请求优先塞满第一个pod,才会到第二个pod。作者认为这样后面缩容时,可以针对空闲的进行缩容。

网络接入层引入Kourier

Kourier是第一个Knative原生的入口实现,直接调和knative网络层CRD到Envoy里面。它作为istio的替换品之一,更轻量的提供入口流量路由服务,目前在0.11版本中把Kourier作为Knative e2e集成测试的一个选项。

其他变更

扩缩容

  • 减少K8s services的数量,每个Revision3个减为2个,metrics service 改用 private service
  • 修复livenessProbe导致无法缩容的问题
  • 修复Target annotation 可以覆盖默认值
  • 在HPA的PodAutoscalers也汇报desired/actual指标

核心API

  • 改进镜像tag解析的错误信息
  • 允许在PodSpec使用 imagePullSecrets 
  • 分离 默认值和校验的webhooks

网络

  • 兼容 Istio 1.4,这个版本引入了正则表达式的长度限制 #6058
  • 集成 istio/client-go #5969
  • 当VirtualService调解失败后,更新LoadBalancerReady condition #6048
  • 端口命名方式遵循Istio约定 #5070

参考

文章来自于对knative release note的翻译和解读

目录
相关文章
|
机器学习/深度学习 自然语言处理 搜索推荐
神经网络算法 —— Embedding(嵌入)!!
神经网络算法 —— Embedding(嵌入)!!
3265 1
|
2月前
|
机器学习/深度学习 数据采集 人工智能
Phi-3 技术报告:手机本地运行的高能力语言模型
Phi-3系列模型通过高质量数据训练与架构创新,实现小体积、高性能。38亿参数的phi-3-mini在手机端可达GPT-3.5水平,支持长上下文、多模态与高效推理,推动AI普惠化。
286 1
uniapp中uview组件库丰富的tab标签
uniapp中uview组件库丰富的tab标签
309 0
|
存储 Prometheus 运维
All in One:Prometheus 多实例数据统一管理最佳实践
当管理多个Prometheus实例时,阿里云Prometheus托管版相比社区版提供了更可靠的数据采集和便捷的管理。本文比较了全局聚合实例与数据投递方案,两者在不同场景下各有优劣。
63410 120
|
12月前
|
监控 安全 持续交付
深入探讨 Webhook 的本质、工作原理以及其在不同领域的应用,帮助你更好地理解和运用这一技术
Webhook是一种在特定事件发生时,由服务器主动向客户端发送通知的机制,实现数据的实时、高效传递。本文介绍Webhook的基本概念、工作原理、应用场景及设置使用方法,探讨其优势与挑战,帮助读者更好地理解和应用这一技术。
1526 7
|
网络协议 Java API
SpringBoot整合Elasticsearch-Rest-Client、测试保存、复杂检索
这篇文章介绍了如何在SpringBoot中整合Elasticsearch-Rest-Client,并提供了保存数据和进行复杂检索的测试示例。
SpringBoot整合Elasticsearch-Rest-Client、测试保存、复杂检索
|
人工智能 自然语言处理 搜索推荐
云栖发布:从级联到端到端语音翻译大模型Gummy
云栖发布:从级联到端到端语音翻译大模型Gummy
|
存储 安全 API
微服务之间的安全通信
在微服务架构中,服务之间的通信是系统的核心部分。然而,由于服务的分布式和独立性,确保它们之间的通信安全至关重要。如果没有适当的安全机制,微服务系统可能会暴露在各种网络攻击和安全漏洞中。
169 5
|
算法 搜索推荐 安全
社交网络分析1:起源发展、不同领域的应用、核心概念
社交网络分析1:起源发展、不同领域的应用、核心概念
1245 0
社交网络分析1:起源发展、不同领域的应用、核心概念