knative serving 0.7版本变更

简介: 本文主要解读knative serving 0.7版本的变更

前言

Knative serving 0.7版本在6月25日正式发布,本次版本发布主要是继续推进v1beta API的落地,HPA支持并发请求数进行扩缩容终于在这个版本实现了。注意这次去掉了一些过时的字段,详细见下面的不兼容变更。本文主要描述0.7版本的变更。

概览

serving.knative.dev/v1beta1 (因为 #4533 ,需要 K8s 1.14+)

在0.6扩展了 v1alpha1 API 包含 v1beta1 的字段,在这次发布中,将 v1alpha1 的字段限制在 v1beta1 的子集内,并且不允许出现v1beta1 不适合的字段,这样,我们可以利用kubernetes 1.11+ 支持的相同模式来发布 v1beta1
因为k8s处理多个版本时存在bug,导致无法在旧版本编辑资源,目前是准备发布两个yaml,一个是只支持 v1alpha1,可以兼容k8s 1.11+,另一个同时支持两个版本,需要k8s 1.14+。

HPA根据并发请求指标扩缩容

之前的版本HPA支持根据CPU扩容,在这次发布,HPA支持和默认扩缩容组件一样的"并发请求数"指标进行扩缩容。
HPA依然还不支持缩容到零,另外还要想办法暴露这些指标给任意的扩缩容插件。
当前的实现方式是通过autoscaler来抓取用户容器的并发请求数指标,把autoscaler注册成一个custom metrics api server,HPA通过这个方式来获取指标进行扩缩容。

非root用户容器

因为安全原因,使用非root用户来启动,包括queue-proxy。

不兼容变更

  • 去掉了之前过时的状态字段
  • Service里面的Build和Manual模式现在不支持了
  • Route tags默认生成的url生成方式改变

以下为各个组件的具体变更。

扩缩容

  • HPA支持根据自定义的并发请求数指标扩缩容
  • 根据pod的数量动态调整autoscaler抓取指标的样本数

Fixes:

  • 增加autoscaler的readiness健康检查
  • 根据activator的扩缩容调整activator限速器行为
  • Revision在达到最小副本数时才更改状态为ready

核心API

  • 暴露 v1beta1 API #4199
  • 容器中使用非root用户启动 #3237
  • 允许用户填写容器名称 #4289 
  • 支持projected volume #4079
  • 删除过时的状态字段 #4197 
  • Build不再支持 #4099
  • Manual模式不再支持 #4188
  • V1beta1 客户端和稳定性测试 #4369 
  • 旧的v1alpha1 schema 通过webhook转换 #4080 
  • queue-proxy 新增annotation用于限制资源占用 #4151 
  • Knative Sercice的annotation传递到Route和Configuration #4363#4367

Fixes:

  • 改进Ready/Generation的处理,如果底下资源还没有调和,更新状态非调和状态 #4185
  • 修复 Revision 回收 #4187#4245
  • 把pod调度失败的错误信息写入Revision状态中 #4191
  • 解决无法拉取scheme1版本的镜像 #4430

网络

  • 把route的annotation传递到ClusterIngress #4087 
  • 引入 tagTemplate 配置,支持定义版本的域名格式 #4292 
  • 支持自定义的子域名 #4210 
  • 允许定义最长请求超时时间 #4172 
  • 在请求中设置 Forwarded header #4376

Fixes:

  • 不依赖istio sidecar支持短域名 #3824
  • 改进ClusterIngress状态 #4288 #4144
  • SKS private service 使用随机名称避免长度过长 #4250 

监控

  • 设置zipkin pods的内存需求 #4353
  • 不需要fluentd sidecar收集 /var/log 日志 #4156 
  • Prometheus抓取 queue-proxy 指标 #4111

Fixes:

  • 修复一些Grafana dashboard
  • 移除内置的jaeger-operator,把它变成依赖来使用

参考

内容来自官方 release note https://github.com/knative/serving/releases

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
12月前
|
前端开发 JavaScript
如何在 CSS3 动画中添加缓动效果?
在上述示例中,页面中有一个蓝色的方块元素和几个按钮,点击不同的按钮可以为方块的移动动画设置不同的缓动效果。通过JavaScript获取方块元素,根据用户点击按钮传递的缓动函数值,修改方块的`transitionTimingFunction`属性,从而实现动态切换缓动效果的功能。每次点击按钮后,方块会向右移动100px,并在1秒后回到初始位置,以便用户观察不同缓动效果下的动画表现。
350 57
|
12月前
|
算法
数据结构之朋友关系处理
本文介绍了通过兴趣爱好来建立和分析朋友关系的方法。首先定义了一个用户结构,每个用户具有唯一ID,并通过链表链接其兴趣爱好朋友。文中展示了如何使用深度优先搜索(DFS)和广度优先搜索(BFS)算法来判断两个用户是否通过一系列共同的兴趣或朋友相互认识。通过具体的测试样例,比较了两种搜索算法在寻找用户间关系上的优缺点。DFS在内存使用上更为高效,但可能不是最优解;而BFS虽然能保证找到最短路径,但其空间复杂度较高。最后,提供了两种算法的具体实现代码,以帮助理解这两种方法在实际应用中的操作方式。
177 0
|
Ubuntu Linux Windows
两种Ubuntu和Windows互相共享文件夹的方法
两种Ubuntu和Windows互相共享文件夹的方法
|
前端开发 JavaScript Java
若依部署上线之后验证码不显示的解决方法之一
若依部署上线之后验证码不显示的解决方法之一
|
传感器 运维 网络协议
Modbus故障码速查手册(故障码含义、分析原因、详细解读)
当涉及到Modbus通信协议的故障排查和调试时,速查手册是一项极为重要的资源。了解故障码及其含义能够帮助工程师在通信问题出现时迅速定位和解决相关故障。 本篇文章旨在为读者提供一个方便快速查阅的资源,以便快速获取有关Modbus通信中可能出现的故障码的信息。通过仔细研究这些故障码,读者可以更有效地诊断和解决通信问题,减少故障排查的时间。
4766 0
|
弹性计算 安全 关系型数据库
Terraform入门初实践
0.写在前面:在云巧资产市场中对项目进行交付过程中,能够快速复用已有组件和一键部署组件一直是我们追求的目标(关于云巧相关的理念可移步了解云巧 详细了解),因此以IaC理念出圈的Terraform,成为关注的重点。本文将介绍Terraform核心理念并结合运行demo完成对Terraform的探索和初级实践,为后续云巧市场更好的交付奠定基础。1.Terraform介绍:1.1 IACInfrastr
1405 0
Terraform入门初实践
|
前端开发 JavaScript
vue中css文件引入失败等问题
vue中css文件引入失败等问题和解决方案
1326 0
|
设计模式 C# uml
UML类图及C#实现
我们引用《大话设计模式》中得UML类图图示样例来学习UML类图。 本文UML类图使用了Visual Paradigm工具绘制。 UML视图主要可以帮我们理清楚思路:知道每个对象直接的交互关系,而且让我们更加清楚的知道什么时候用什么结构。
UML类图及C#实现
|
移动开发 应用服务中间件 定位技术
实战!使用pano2vr生成html5全景页面
随着现代视觉技术的进步以及对空间展示的迫切需求,很多的无人机可以拍出360度甚至720度全景照片,怎样将全景地图以html5的形式展示出来?文章将详细讲解如何使用pano2vr.exe制作全景页面。
1127 0
实战!使用pano2vr生成html5全景页面
|
缓存 网络协议 算法
智能接入网关SAG2.0产品解读
智能接入网关(Smart Access Gateway,以下简称SAG)是阿里云基于云原生的SD-WAN解决方案,企业可通过智能接入网关实现一站式接入上云,获得更加智能、更加可靠、更加安全的上云体验。SAG2.0重大发布使得SAG形成了全方位的完整解决方案,本文带您了解SAG2.0的重大更新以及背后的技术能力。
4217 0
智能接入网关SAG2.0产品解读