Knative 灰度发布和自动弹性|学习笔记(一)

简介: 快速学习 Knative 灰度发布和自动弹性

开发者学堂课程【通过 Knative 轻松实现应用 Serverless 化交付:Knative 灰度发布和自动弹性】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/753/detail/13228


Knative 灰度发布和自动弹性

 

内容介绍:

一、上期回顾

二、Service 生命周期

三、基于流量的灰度发布

四、自动弹性—KPA

 

一、上期回顾

Knative 冷启动

1.当前社区 Knative 01冷启动问题

//主要是由于电路过长,请求延迟,另外,Pod 启动也很耗时,针对这些问题,使用保留实例平衡成本和冷启动

2.使用保留实例平衡成本和冷启动

 

二、Service 生命周期

image.png

Service  

·直接面向开发者操作的资源对象

·Route:Configuration=1:1

apiversion:servingknativedev/v1    

kind:Service metadata:

name:coffee

spec:

template:

spec:

containers:

-image:registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-qo:160e4dc8

env:

name: TARGET

value:"coffee"

//Knative 提供了基于流量的自动扩容能力,可以根据应用的请求,在高峰时刻,自动扩容实例,在流量减少时自动缩容。此外,Knative 还提供了根据流量自动发布能力,可以根据流量百分比进行灰度发布,在介绍之前,首先深入分析 Service 服务的生命周期,Knative Service 是直接面向开发者操作的资源对象,他负责对 Route Configuration 进行管控,一个 Service 分别对应一个 Route Configuration。每次更新 Configuration 都会创建新的 Revision,每次 Configuration 更新都会创建唯一的 RevisionConfiguration 可以认为是版本控制器,负责管理多个 Revision 版本。Route 主要负责 Configuration 的流量管理,控制流量分发到不同的 Revision 上,支持按照百分比进行流量分发,这里可以通过不同的 traffic 对不同的 Revision,不同流量比例控制流量分发。例如,可以对一个新的 Revision 设置90%,原有的 Revision 不会立刻下掉10%进行比例控制,一个Revision 可以认为是一个 Configuration 的快照,通过 Revision 可以进行版本追踪以及回滚。

 

三、基于流量的灰度发布

image.png

//通过上面已经对 Knative Service 模型有了深入了解,假如一开始创建了VE版本的 Revision,这时候有新的版本的变更,那么只需要更新 Service 中的 Configuration 就可以创建出 vr 版本,然后可以通过 Route vr 设置不同流量的比例灰度。这里 ve 70%vr 30%,那么流量会按照73这个比例分发到这两个排名上。一旦新的 vr 版本验证没有问题,接下来就可以调整流量比例继续灰度,直到新版本vr达到100%,在这个灰度过程中,一旦发现新版本有异常,可以调整流量比例进行回归操作。除此之外,可以在 Route traffic 中对 Revision 打一个 tag,打完 tag Revision 可以通过 tag url 进行单独测试,测试过程不会对正常流量防卫。

 

四、自动弹性—KPA

//KnativePod 提供基于流量的自动扩容 KPA 的能力,以及基于 cpu number HPA 的弹性能力,Knative 还提供了弹性的扩展能力,基于不同的指标,自定义弹性的实现。

image.png

//Knative Service 默认使用 KPA,上图展示了 Knative 的工作机制,route 负责接入流量,当没有业务请求时缩用到零,缩用到零后 route 接入的请求会转到 Activator 上,当第一个请求进来之后,Activator 会保持住当前的链接。然后通知Autoscaler 去做扩容。Autoscaler 把第一个扩容完成之后,当前的 Pod ready,然后 Activator 把相应的流量转发 Pod 上,从而做到缩用到零也不会损失流量的目的,当后续有流量进来以后,流量会直接到 Pod 上,这时候会直接采用 Pod 指标,根据这个指标进行1N的扩缩容操作。

相关文章
|
测试技术 微服务 负载均衡
微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。
2874 0
|
3月前
|
Kubernetes 监控 Java
发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
发布策略:蓝绿部署、金丝雀发布(灰度发布)、AB测试、滚动发布、红黑部署的概念与区别
402 0
|
4月前
|
Cloud Native 测试技术 开发者
阿里云服务网格ASM多集群实践(二):高效按需的应用多环境部署与全链路灰度发布
介绍服务网格ASM提出的一种多集群部署下的多环境部署与全链路灰度发布解决方案。
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性|学习笔记(二)
快速学习Knative 灰度发布和自动弹性
Knative 灰度发布和自动弹性|学习笔记(二)
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性(一)|学习笔记
快速学习 Knative 灰度发布和自动弹性(一)
133 0
Knative 灰度发布和自动弹性(一)|学习笔记
|
Java 中间件 测试技术
全链路灰度新功能:MSE上线配置标签推送
微服务场景下,全链路灰度作为一种低成本的新功能验证方式,得到了越来越广泛的应用。除了微服务实例和流量的灰度,微服务应用中的配置项也应该具备相应的灰度能力,以应对灰度应用对特殊配置的诉求。
全链路灰度新功能:MSE上线配置标签推送
|
Kubernetes 负载均衡 监控
Kubernetes 实现灰度和蓝绿发布
Kubernetes 实现灰度和蓝绿发布
1192 1
|
Serverless 测试技术 vr&ar
Knative 灰度发布和自动弹性(二)|学习笔记
快速学习Knative 灰度发布和自动弹性(一)
101 0
|
Cloud Native Java 中间件
全链路灰度新功能:MSE 上线配置标签推送
本文介绍了全链路灰度场景给配置管理带来的问题,介绍了 MSE 针对这一场景的解决方案,并通过实践的方式展示了配置标签推送的使用流程。后续,MSE 还会针对配置治理做更多的探索,帮助用户更好地解决微服务配置管理中的难题,提高微服务应用的稳定性。
全链路灰度新功能:MSE 上线配置标签推送
|
测试技术 Serverless 开发者
SAE 应用分批发布与无损下线的最佳实践|学习笔记
快速学习 SAE 应用分批发布与无损下线的最佳实践
131 0
SAE 应用分批发布与无损下线的最佳实践|学习笔记