Knative 冷启动(二)|学习笔记

简介: 快速学习 Knative 冷启动(二)

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

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


Knative 冷启动(二)


五、实例演示

下面打开相应的终端控制台,它就是一个很简单的 hello coffee。左侧使用的是 SK

connective

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# Ls

ksvc-coffee.yaml ksvc-java11.yaml

[root@iZbp1djyqnxhjfv9h9s@edZ serverless]# cat ksvc-coffee.yaml

apiVersion: serving.knative.dev/v1

kind:Service

metadata;

name:coffee

spec:

template:

metadata:

annotations:

autoscaling,knative.dev/target:"10"

spec;

containers;

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

env:

name:TARGET

value;"coffee"

[root@iZbp1djyqnxhjfv9h9s0edZserverless]#

然后右侧使用的是社区的 connective

[rooteiZZzegdceffr1urv90tpu2Z demo]#ls coffee.yaml

[rooteiZ2zegdceffr1urv90tpu2Z demo]# cat coffee.yaml apiVersion:serving.knative.dev/v1 kind: Service metadata;

name: coffee spec:

template: metadata:

annotations:

autoscaling.knative.dev/target: "10' labels:

eci: "true" spec:

containers:

image:registry.cn-hangzhoualiyuncs.com/knative-sample/helloworld-go:160e4d

c8

env:

name; TARGET

value: "coffee"

[rooteiZZzegdceffrlurv90tpuZZ demo]#

二者的打印信息都是一样的。

最直观的是在 SK connective 的平台上,内容是不需要管控端相应的组件的,没有任何 pod。

而社区的 connective 是在相应的实名运营空间下,是需要相当提供这些管控组件的,这也是我们上面提到的在 SK connective 中对来自设备组件做了一个全托管免运维的优化。

接下来部署相应的服务。

社区的 connective 部署相应的服务

[root@iZ2zegdceffr1urv90tpu2Z demo]# kubectl apply-f coffeeyaml service.serving.knative.dev/coffee created

[root@iZ2zegdceffrlurv90tpu2Z demo]# kubectl get pod

coffee-ktvk6-deployment-67c5966b7c-59xhs  0/2

Pending 6s

[root@iZZzegdceffr1urv90tpu2Z demo]# watch -n 1 "kubectl get pod

可以看到已经创建完成。

观察一下当前一个 pod 的情况,同时在 SK 平台当中创建相同的 Coffee,也可以观察一下当前 pod 的一个启动情况。

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# kubectl -n knative-serving get pod No resources found.

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# kubectl apply -f ksvc-coffeeyaml service.serving.knative.dev/coffee created

[root@iZbp1djyqnxhjfv9h9s0edZ serverless]# watch -n 1 "kubectl get pod"

SK connective 在创建中,然后在社区的 connective 已经创建完成了。

接下来要观察一个现象,就是在没有请求的过程中,然后社区的 connective 会缩容到0,然后在 SK 中提供的 connective 是缩容到的一个保留实例。正常一个周期的缩容是90秒,社区的 connective,已经缩容到0。

SK 的 connective,在这个过程中重新访问请求,再打开一个窗口。

Last login: Tue Aug 11 19:50:58 on ttys004 richard@B-N3TEMD6P-1650 ~%cat ssh120.55.51.3047.94.141.240

8.211.36.198

richard@B-N3TEMD6P-1650~%sshroot@47.94.141240 root@47.94.141.240's password:

Last login: Tue Aug 11 19:51:54 2020 from 42.120.72.81

Welcame to Alibaba Cloud Elastic Campute Service!

[root@iZ2zegdceffr1urv90tpu2Z ~]#

创建保留实例,一旦ready,就会把正常的实例下线掉。在没有请求的时候, connective 已经缩容到0。

再打开社区的 connective。

Last login: Tue Aug 11 20:17:22 on ttys005

richard@B-N3TEMD6P-1650~%ssh

root@120.55.51.30 raot@120.55.51.30's password:

Last login: Tue Aug 11 19:51:05 2020 from 42120.72.81

Welcome to Alibaba Cloud Elastic Compute Service !

[root@iZbp1djyqnxhjfv9h9s0edZ ~]#

此时可以很明显对比出来,社区的 connective 一旦接受请求就会启动pod,大概30秒。在 SK 的 connective 几乎是实时响应。并且在响应过程中一旦接受请求,就会扩容一个正常实例。

一旦正常实例 ready 后,就会平滑的把相应的保留实力下线掉。通过这个对比可以看到,如何在 SK 的 connective 通过保留实例解决冷启动问题,对于服务敏感形的,可以保证实时响应。


六、总结

Knative 冷启动问题包括:当前社区 Knative 从口到1冷启动的问题以及保留实例平衡成本和冷启动。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
数据采集 监控 Oracle
ERP系统的实施与变更管理:确保成功的数字化转型
【7月更文挑战第29天】 ERP系统的实施与变更管理:确保成功的数字化转型
809 0
|
JavaScript 前端开发 小程序
一小时入门Vue.js前端开发
本文是作者关于Vue.js前端开发的快速入门教程,包括结果展示、参考链接、注意事项以及常见问题的解决方法。文章提供了Vue.js的基础使用介绍,如何安装和使用cnpm,以及如何解决命令行中遇到的一些常见问题。
679 5
一小时入门Vue.js前端开发
|
缓存 监控 Unix
Jmeter系列(38)- 详解性能监控工具 nmon
Jmeter系列(38)- 详解性能监控工具 nmon
910 0
Jmeter系列(38)- 详解性能监控工具 nmon
|
机器学习/深度学习 存储 算法
解锁棋盘之谜:探索N皇后问题的全方位解决策略【python 力扣51题】
解锁棋盘之谜:探索N皇后问题的全方位解决策略【python 力扣51题】
|
负载均衡 测试技术 网络协议
|
2天前
|
数据采集 人工智能 安全
|
11天前
|
云安全 监控 安全
|
3天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1022 151