Knative 极致 Serverless 体验(二)|学习笔记

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 快速学习 Knative 极致 Serverless 体验(二)

开发者学堂课程【如何通过 Knative 轻松实现应用 Serverless 化交付  Knative 极致 Serverless 体验(二)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/291/detail/3431


Knative 极致 Serverless 体验(二)


二、Knative Serving 简介

1、Knative Serving 架构

1Serving 核心是 Knative Service,Knative Controller 通过 Service 的配置自动操作 Kubernetes Service 和 Deployment,从而实现简化应用管理的目标。

2Knative Service 对应一个叫做 Configuration 的资源,每次 Service 变化如果需要创建新的 Workload 就更新 Configuration,3 每次 Configuration 更新都会创建一个唯一的 Revision。

Revision 可以认为是 Configuration 的版本管理机制。理论上 Revision 创建完以后是不会修改的。

4Route 主要负责 Knative 的流量管理,Knative Route Controller 通过 Route 的配置自动生成 Knative Ingress 配置,Ingress Controller 基于 Ingress 策略实现路由的管理。

Knative Serving 对应用 Workload 的 Serverless 编排是从流量开始的。流量首先达到 Knative 的 Gateway,Gateway 根据 Route 的配置自动把流量根据百分比拆分到不同的 Revision 上,然后每一个 Revision 都有一个自己独立的弹性策略。当过来的流量请求变多时,当前 Revision 就开始自动扩容。每一个 Revision 的扩容策略都是独立的,相互不影响。

基于流量百分比对不同的 Revision 进行灰度,每一个 Revision 都有一个独立的弹性策略。Knative Serving 通过对流量的控制实现了流量管理、弹性和灰度三者的完美结合。

到此 Knative Serving 的核心模块和基本原理已经介绍完毕,应该对 Knative 已经有了初步了解。在介绍原理的过程中你可能也感受到了,要想把 Knative 用起来还是需要维护很多 Controller 组件、Gateway 组件(比如 Istio)的,并且要持续地投入 IaaS 成本和运维成本。

2、平台成本和复杂度

Gateway 组件假设使用 istio 实现的话,Istio 本身就需要十几个 Controller,如果要做高可用可能就需要二十几个 Controller。Knative Serving Controller 全都高可用部署也需要十几个。这些 Controller 的 IaaS 成本和运维成本都比较多。另外冷启动问题也很明显,虽然缩容到零可以降低业务波谷的成本,但是第一批流量也可能会超时。


三、Knative 和云的完美融合

1、Gateway 和云的融合

为了解决上述问题,我们把 Knative 和阿里云做了深度的融合。用户还是按照 Knative 的原生语义使用,但底层的 Controller 、Gateway 都深度嵌入到阿里云体系内。这样既保证了用户可以无厂商锁定风险地以 Knative API 使用云资源,还能享受到阿里云基础设施的已有优势。

首先是 Gateway 和云的融合,直接使用阿里云 SLB 作为 Gateway,使用云产品 SLB 的好处有:

· 云产品级别的支撑,提供 SLA 保障;

· 按需付费,不需要出 IaaS 资源;

· 用户无需承担运维成本,不用考虑高可用问题,云产品自带高可用能力。

总结出来以下两点:

降成本:减少了十几个组件,大大降低运维成本和laas成本

更稳定: SLB云产品服务更稳定、可靠性更高,易用性也更好

2、管控组件下沉

除了 Gateway 组件以外,Knative Serving Controller 也需要一定的成本,所以我们把 Knative Serving Controller 和阿里云容器服务也进行了融合。用户只需要拥有一个 Serverless Kubernetes 集群并开通 Knative 功能就可以基于 Knative API 使用云的能力,并且用户无需为 Knative Controller 付出任何成本。

即以下三点:

开箱即用:用户直接使用Serverless Framework,不需要自己安装

免运维、低成本: Knative组件和K8s集群进行融合,用户没有运维负担,也无需承担额外的资源成本

高管控:所有组件都在管控端部署,升级和迭代更容易

3、优雅的保留实例

免冷启动:通过保留规格消除了从0到1的30秒冷启动时间

成本可控:突发性能实例成本比标准规格实例降低40%的成本,如果和Spot实例结合还能再进一步降低成本


四、动手实践

1.部署 coffee 服务

spec:

containers:

image: registry . cn-hangzhou . aliyuncs . com knative sample/he lloworld-go: 16e4dc8env :

name: TARGET

value: "coffee"

[root@i Zbp1djyqnxhjfv9h9s0edZ serverless]# kubectl apply - f ksvc-coffee. Yaml

执行 kubectl apply -f coffee.yaml 部署 coffee 服务,稍等一会儿应该可以看到 coffee 服务已经部署好了。

# kubectl get ksvc

coffee   http://coffee.default.example.com   coffee-fh85b    coffee-fh85b   True

2.访问 coffee 服务

# curl -H "Host: coffee.default.example.com" http://47.102.220.35

Hello coffee!

3.保留实例

保留实例启动后,正常实例就下线掉。

保留实例:

coffee-6zbbd-deployment-58c7c4f546-92c58 2/2 Running 2m51s

coffee-6zbbd-deployment-reserve-75f88bf97c-r6j5g 0/2 Pending 17s

正常实例:

coffee-6zbbd-deployment-reserve-75f88bf97c-r6i5q 2/2 Running 0 33s

 

五、总结

1.为什么需要 Knative

通过原生的 Kubernetes 创建Serverless ,遇到了一些问题,这时Knative提供了 Serverless 编排框架。

2.Knative Serving

包括Service这些信息。

3.Knative与云的结合

把相关的组件像常驻的 Controller 和常驻的网关和阿里云进行深度融合,做到了极致的 Serverless 体验

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
2月前
|
运维 Kubernetes 前端开发
拥抱Knative, 合思加速Serverless化演进实践
合思信息基于阿里云容器服务Knative, 实现Serverless化演进的最佳实践。
拥抱Knative, 合思加速Serverless化演进实践
|
5月前
|
关系型数据库 MySQL 分布式数据库
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性
作为数据库专家,我有幸带大家深入体验阿里巴巴自主研发的下一代关系型分布式云原生数据库——PolarDB MySQL版的Serverless极致弹性特性。在这个云原生和分布式技术飞速发展的时代,Pola
|
6月前
|
关系型数据库 Serverless 分布式数据库
体验PolarDB PostgreSQL Serverless极致弹性
体验PolarDB PostgreSQL Serverless极致弹性
|
5月前
|
存储 NoSQL 机器人
Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇
Knative 实战:基于 Knative Serverless 技术实现天气服务-下篇
|
6月前
|
关系型数据库 测试技术 Serverless
5分钟免费体验PolarDB PG版Serverless的极致弹性!
基于阿里云瑶池数据库解决方案体验馆,带你体验PolarDB PG版 Serverless形态下的性能压测环境,基于可选择的标准压测工具进行压测,构造弹性场景进行压测,实时动态展示弹性能力、价格和性价比结果,压测环境可开放定制修改、可重复验证。参与活动即有机会获得小爱随身音响、体脂秤、极客时间VIP月卡、鼠标垫等精美礼品。
|
6月前
|
Cloud Native Serverless API
Serverless 成本再优化:Knative 支持抢占式实例
Knative 是一款云原生、跨平台的开源 Serverless 应用编排框架,而抢占式实例是公有云中性价比较高的资源。Knative 与抢占式实例的结合可以进一步降低用户资源使用成本。本文介绍如何在 Knative 中使用抢占式实例。
92913 10
|
6月前
|
关系型数据库 MySQL 测试技术
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性!
本次基于阿里云瑶池数据库解决方案体验馆,带你体验PolarDB MySQL Serverless形态下的性能压测环境,基于可选择的标准压测工具进行压测,构造弹性场景进行压测,实时动态展示弹性能力、价格和性价比结果,压测环境可开放定制修改、可重复验证。参与活动即有机会获得鼠标、小米打印机、卫衣等精美礼品。
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性!
|
6月前
|
关系型数据库 MySQL 测试技术
数据库专家带你体验PolarDB MySQL版 Serverless的极致弹性特性
本次基于阿里云瑶池数据库解决方案体验馆,带你体验PolarDB MySQL Serverless形态下的性能压测环境,基于可选择的标准压测工具进行压测,构造弹性场景进行压测,实时动态展示弹性能力、价格和性价比结果,压测环境可开放定制修改、可重复验证。参与活动即有机会获得鼠标、小米打印机、卫衣等精美礼品。
|
6月前
|
关系型数据库 MySQL Serverless
PolarDB Serverless极致弹性,不是说说而已!
体验数据库产品,就上瑶池数据库解决方案体验馆:https://yaochi.console.aliyun.com/
|
11月前
|
监控 关系型数据库 Serverless
PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性|后续
PolarDB MySQL 版 Serverless评测|一文带你体验什么是极致弹性|后续

热门文章

最新文章

相关产品

  • 函数计算
  • 下一篇
    无影云桌面