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的扩缩容操作。

相关文章
|
测试技术 微服务 负载均衡
微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布
在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。 目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。
2791 0
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性|学习笔记(二)
快速学习Knative 灰度发布和自动弹性
140 0
Knative 灰度发布和自动弹性|学习笔记(二)
|
Kubernetes Cloud Native 前端开发
构建基于 Ingress 的全链路灰度能力
微服务架构下,有一些需求开发,涉及到微服务调用链路上的多个微服务同时发生了改动,通常每个微服务都会有灰度环境或分组来接受灰度流量,我们希望通过进入上游灰度环境的流量,也能进入下游灰度的环境中,确保1个请求始终在灰度环境中传递,即使这个调用链路上有一些微服务没有灰度环境,这些应用请求下游的时候依然能够回到灰度环境中。通过 MSE 提供的全链路灰度能力,可以在不需要修改任何您的业务代码的情况下,能够轻松实现上述能力。
构建基于 Ingress 的全链路灰度能力
|
测试技术 Serverless vr&ar
Knative 灰度发布和自动弹性(一)|学习笔记
快速学习 Knative 灰度发布和自动弹性(一)
114 0
Knative 灰度发布和自动弹性(一)|学习笔记
|
存储 Kubernetes Cloud Native
直播预告 | 容器服务 Knative 网关增强:支持 ALB
Knative 是基于 Kubernetes 之上提供的一款开源 Serverless 应用框架,能够帮助您部署和管理现代化的 Serverless 工作负载,打造企业级 Serverless 平台。ALB 面向应用层负载场景,具备自动弹性及大规模应用层流量处理能力。当前容器服务 Knative 提供 ALB 网关能力,充分发挥了流量、资源按需使用的 Serverless 能力。
直播预告 | 容器服务 Knative 网关增强:支持 ALB
|
Java 中间件 测试技术
全链路灰度新功能:MSE上线配置标签推送
微服务场景下,全链路灰度作为一种低成本的新功能验证方式,得到了越来越广泛的应用。除了微服务实例和流量的灰度,微服务应用中的配置项也应该具备相应的灰度能力,以应对灰度应用对特殊配置的诉求。
全链路灰度新功能:MSE上线配置标签推送
|
Serverless 测试技术 vr&ar
Knative 灰度发布和自动弹性(二)|学习笔记
快速学习Knative 灰度发布和自动弹性(一)
82 0
|
Cloud Native Java 中间件
全链路灰度新功能:MSE 上线配置标签推送
本文介绍了全链路灰度场景给配置管理带来的问题,介绍了 MSE 针对这一场景的解决方案,并通过实践的方式展示了配置标签推送的使用流程。后续,MSE 还会针对配置治理做更多的探索,帮助用户更好地解决微服务配置管理中的难题,提高微服务应用的稳定性。
全链路灰度新功能:MSE 上线配置标签推送
|
Kubernetes 监控 网络协议
Serverless容器与基于流量模式的自动扩缩
Serverless和Service Mesh是两种流行的云原生技术,客户正在探索如何从中创造价值。 随着我们与客户深入研究这些解决方案,问题经常出现在这两种流行技术之间的交集以及它们如何相互补充上。我们能否利用 Service Mesh 来保护、观察和公开我们的 Knative 无服务器应用程序?本文试图解释如何在一个托管的服务网格技术平台上支持基于Knative的Serverless容器, 以及基于流量模式的自动扩缩能力。
819 0
Serverless容器与基于流量模式的自动扩缩
|
测试技术 Serverless 开发者
SAE 应用分批发布与无损下线的最佳实践|学习笔记
快速学习 SAE 应用分批发布与无损下线的最佳实践
109 0
SAE 应用分批发布与无损下线的最佳实践|学习笔记

热门文章

最新文章